Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Các ký tự hex trong đối sánh regexp trong mysql

Đ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à xa nằm giữa 1x . 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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tìm kiếm toàn văn bản với InnoDB trong MySQL

  2. Cột Văn bản MySQL bị cắt bớt

  3. Không thể truyền đối tượng kiểu 'System.DBNull' sang kiểu 'System.Byte []'.

  4. MySQL tự động chèn một hàng vào table2 trên một chèn vào table1

  5. Cấu trúc MySQL cho bản dịch