Wie kann ich überprüfen, ob ein Varchar-Code in MySQL hexadezimal ist?MySQL - Ist hexadezimal
So etwas wie ein ISHEX() Funktion:
ISHEX('QWERT') // false
ISHEX('12345') // true
ISHEX('ABCDE') // true
ISHEX('i+5=G') // false
Wie kann ich überprüfen, ob ein Varchar-Code in MySQL hexadezimal ist?MySQL - Ist hexadezimal
So etwas wie ein ISHEX() Funktion:
ISHEX('QWERT') // false
ISHEX('12345') // true
ISHEX('ABCDE') // true
ISHEX('i+5=G') // false
Wie über den REGEXP Operator?
SELECT 'QWERT' REGEXP '^[0-9ABCDEF]+$'; -- 0
SELECT '12345' REGEXP '^[0-9ABCDEF]+$'; -- 1
SELECT 'ABCDE' REGEXP '^[0-9ABCDEF]+$'; -- 1
SELECT 'i+5=G' REGEXP '^[0-9ABCDEF]+$'; -- 0
MySQL hat eine coole kleine Funktion namens UNHEX.
ich nicht versucht haben, aber für jemanden, der es geben einen Schuss will und reguläre Ausdrücke zu vermeiden, können Sie diese verwenden:
SELECT !ISNULL(UNHEX('your string')); -- returns 0 since it failed unhexing
SELECT !ISNULL(UNHEX('AF0B')); -- returns 1 since it succeeded
Perfect! Ich weiß nicht so viel über reguläre Ausdrücke, kann ich stattdessen [0-9A-F] schreiben? – stramin
Ja, Sie können es verwenden, es funktioniert auch. :) –