To też pasuje:
SELECT CONVERT('a' USING BINARY) REGEXP '[1-\x]'
Powodem jest to, że \x
jest interpretowany jako x
i a
mieści się między 1
i x
. Reszta Twojego wyrażenia regularnego to zwykłe znaki, które nie są tutaj istotne, ponieważ znajdują się już w zakresie [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.
Nie jestem pewien, co chcesz osiągnąć, ale jeśli chcesz znaków szesnastkowych, możesz użyć funkcji szesnastkowej:
SELECT HEX('a')
61