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

Chức năng tìm kiếm với các ký tự Hy Lạp trong MySQL

Nếu bạn có thể thay đổi bộ ký tự của cột (hoặc bảng), hãy đặt nó thành utf8_general_ci ( liên kết đến thủ công ):

ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8_general_ci;

Với bộ ký tự này (không phân biệt chữ hoa chữ thường, được biểu thị bằng _ci ), các ký tự có dấu có cùng trọng số (giá trị được sử dụng cho đối chiếu ), vì vậy chúng trả về true khi so sánh với nhau ( liên kết đến thủ công ):

mysql> SET NAMES 'utf8' COLLATE 'utf8_general_ci';
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT 'a' = 'A', 'a' = 'À', 'a' = 'á';
+-----------+-----------+-----------+
| 'a' = 'A' | 'a' = 'À' | 'a' = 'á' |
+-----------+-----------+-----------+
|         1 |         1 |         1 |
+-----------+-----------+-----------+
1 row in set (0.06 sec)

Ngoài ra, hoặc nếu bạn không thể thay đổi cấu hình cơ sở dữ liệu theo cách này, bạn có thể viết một hàm để thay thế các ký tự có dấu bằng các ký tự tương đương không có dấu của chúng (tức là é -> e ) và viết trường này vào trường tìm kiếm chuyên dụng ( full- tìm kiếm văn bản trường được khuyến khích). Thực hiện tìm kiếm trên trường này và trả lại trường có dấu cho ứng dụng.




  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 bản ghi từ một bảng không tồn tại trong bảng khác

  2. # 1411 - Giá trị ngày giờ không chính xác cho hàm str_to_date khi CHÈN VÀO ... CHỌN

  3. Thứ tự của các bảng trong các phép nối thẳng, không có chỉ thị gợi ý, có ảnh hưởng đến hiệu suất không?

  4. MySQL - LỖI 1045 - Quyền truy cập bị từ chối

  5. Kiểu dữ liệu bản ghi nhớ Microsoft Access tới Kiểu dữ liệu MySQL