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

Đánh dấu câu truy vấn tìm kiếm không nhạy cảm trong MySQL

Bạn có thể thay đổi đối chiếu trong thời gian chạy trong truy vấn sql,

...where title like '%torun%' collate utf8_general_ci

nhưng hãy lưu ý rằng việc thay đổi đối chiếu nhanh chóng trong thời gian chạy sẽ loại bỏ khả năng mysql sử dụng chỉ mục, vì vậy hiệu suất trên các bảng lớn có thể rất tệ.

Hoặc, bạn có thể sao chép cột này sang một cột khác, chẳng hạn như searchable_title , nhưng thay đổi đối chiếu trên đó. Việc thực hiện loại công cụ này thực sự phổ biến, nơi bạn sao chép dữ liệu nhưng có nó ở một số dạng hơi khác được tối ưu hóa cho một số khối lượng công việc / mục đích cụ thể. Bạn có thể sử dụng trình kích hoạt như một cách hay để giữ cho các cột trùng lặp được đồng bộ hóa. Phương pháp này có khả năng hoạt động tốt, nếu được lập chỉ mục.

Lưu ý - Đảm bảo rằng db của bạn thực sự có các ký tự đó chứ không phải thực thể html. Ngoài ra, bộ ký tự của kết nối của bạn cũng quan trọng. Ở trên giả định rằng nó được đặt thành utf8, chẳng hạn như qua set tên như set names utf8

Nếu không, bạn cần có người giới thiệu cho giá trị chữ

...where title like _utf8'%torun%' collate utf8_general_ci

và tất nhiên, giá trị trong các dấu ngoặc kép thực sự phải được mã hóa utf8, ngay cả khi phần còn lại của truy vấn sql không phải.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách xóa hai cột trùng lặp

  2. Máy chủ gặp lỗi nội bộ hoặc định cấu hình sai và không thể hoàn thành yêu cầu của bạn

  3. Lỗi cú pháp SQL gần mô tả

  4. Mysql - Thủ tục lưu trữ biến OUT trả về null

  5. MYSQL - Chỉ chọn nếu hàng trong THAM GIA TRÁI không có mặt