Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Caracteres hexadecimais na correspondência regexp no mysql


Isso também combina:
SELECT CONVERT('a' USING BINARY) REGEXP '[1-\x]'

O motivo é que \x é interpretado como x e a fica entre 1 e x . O resto do seu regex são apenas caracteres comuns que não são relevantes aqui porque já estão dentro do intervalo [1-x].
SELECT CONVERT('0' USING BINARY) REGEXP '[\x61-\x61]' -- Fails, because 0 < 1.
SELECT CONVERT('1' USING BINARY) REGEXP '[\x61-\x61]' -- Succeeds: inside [1-x].
SELECT CONVERT('2' USING BINARY) REGEXP '[\x61-\x61]' -- Succeeds: inside [1-x].
...
SELECT CONVERT('w' USING BINARY) REGEXP '[\x61-\x61]' -- Succeeds: inside [1-x].
SELECT CONVERT('x' USING BINARY) REGEXP '[\x61-\x61]' -- Succeeds: inside [1-x].
SELECT CONVERT('y' USING BINARY) REGEXP '[\x61-\x61]' -- Fails, because y > x.

Não tenho certeza do que você está tentando alcançar, mas se quiser caracteres hexadecimais, você pode usar a função hexadecimal:
SELECT HEX('a')
61