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

Làm thế nào để MySQL nhận biết được các ký tự nhiều byte trong LIKE và REGEXP?

ĐÃ CHỈNH SỬA để đưa vào bản sửa lỗi cho chủ nghĩa phê bình hợp lệ

Sử dụng HEX() hàm để hiển thị các byte của bạn thành hệ thập lục phân và sau đó sử dụng RLIKE trên đó, ví dụ:

select * from mytable
where hex(ipa) rlike concat('(..)*', hex('needle'), '(..)*'); -- looking for 'needle' in haystack, but maintaining hex-pair alignment.

Các ký tự unicode lẻ hiển thị nhất quán với các giá trị hex của chúng, vì vậy bạn đang tìm kiếm trên các ký tự 0-9A-F chuẩn.

Điều này cũng hoạt động cho các cột "bình thường", bạn chỉ cần không cần nó.

p.s. Điểm (hợp lệ) của @ Kieren được giải quyết bằng cách sử dụng rlike để thực thi các cặp ký tự



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khởi tạo cơ sở dữ liệu MySQL được triển khai trong AWS EKS

  2. một cách tiếp cận tốt hơn so với việc lưu trữ mật khẩu mysql ở dạng văn bản thuần túy trong tệp cấu hình?

  3. Hàm thay thế mysql_list_tables () trong php 5 là gì

  4. Cách cấp quyền truy cập từ xa vào một cơ sở dữ liệu MySQL duy nhất

  5. Tìm một SQL trung bình