Как я могу проверить, является ли код varchar шестнадцатеричным в MySQL?MySQL - это hexadecimal
Что-то вроде функции ISHEX():
ISHEX('QWERT') // false
ISHEX('12345') // true
ISHEX('ABCDE') // true
ISHEX('i+5=G') // false
Как я могу проверить, является ли код varchar шестнадцатеричным в MySQL?MySQL - это hexadecimal
Что-то вроде функции ISHEX():
ISHEX('QWERT') // false
ISHEX('12345') // true
ISHEX('ABCDE') // true
ISHEX('i+5=G') // false
Как об использовании оператора REGEXP?
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 есть классная небольшая функция, называемая UNHEX.
Я не пробовал это, но для кого-то, кто хочет, чтобы дать ему шанс и избежать регулярных выражений, вы можете использовать это:
SELECT !ISNULL(UNHEX('your string')); -- returns 0 since it failed unhexing
SELECT !ISNULL(UNHEX('AF0B')); -- returns 1 since it succeeded
Отлично! Я не так много знаю о регулярных выражениях, могу ли я написать [0-9A-F]? – stramin
Да, вы можете использовать его, он тоже работает. :) –