2016-05-23 9 views
0

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 

Antwort

0

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 
+0

Perfect! Ich weiß nicht so viel über reguläre Ausdrücke, kann ich stattdessen [0-9A-F] schreiben? – stramin

+1

Ja, Sie können es verwenden, es funktioniert auch. :) –

3

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