Điều này cũng phù hợp:
SELECT CONVERT('a' USING BINARY) REGEXP '[1-\x]'
Lý do là \x
được xen vào là x
và a
nằm giữa 1
và x
. Phần còn lại của regex của bạn chỉ là các ký tự bình thường không có liên quan ở đây vì chúng đã nằm trong phạm vi [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.
Tôi không chắc bạn đang cố gắng đạt được điều gì, nhưng nếu bạn muốn ký tự hex, bạn có thể sử dụng hàm hex:
SELECT HEX('a')
61