Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cách dùng hàm SOUNDEX() với toán tử LIKE trong MySQL


Hàm SOUNDEX() trả về mã Soundex - một thuật toán ngữ âm để lập chỉ mục tên dựa trên phát âm tiếng Anh của chuỗi. Ví dụ dưới đây sử dụng dữ liệu từ bảng student_info và áp dụng SOUNDEX() với toán tử LIKE để truy xuất bản ghi:

mysql> Select * from Student_info;
+------+---------+------------+------------+
| id   | Name    | Address    | Subject    |
+------+---------+------------+------------+
|  101 | YashPal | Amritsar   | History    |
|  105 | Gaurav  | Chandigarh | Literature |
|  125 | Raman   | Shimla     | Computers  |
+------+---------+------------+------------+
3 rows in set (0.00 sec)

mysql> Select * from student_info where SOUNDEX(Name) LIKE '%G%';
+------+--------+------------+------------+
| id   | Name   | Address    | Subject    |
+------+--------+------------+------------+
|  105 | Gaurav | Chandigarh | Literature |
+------+--------+------------+------------+
1 row in set (0.00 sec)

Chúng ta dùng tên cột làm tham số của SOUNDEX() và nó trả về hàng có giá trị Soundex khớp với mẫu %G%.

Lưu ý quan trọng: Kết quả của SOUNDEX() luôn chứa ký tự đầu tiên của chuỗi đầu vào. Ví dụ:

mysql> Select SOUNDEX('Ram');
+----------------+
| SOUNDEX('Ram') |
+----------------+
| R500           |
+----------------+
1 row in set (0.00 sec)

mysql> Select SOUNDEX('ram');
+----------------+
| SOUNDEX('ram') |
+----------------+
| R500           |
+----------------+
1 row in set (0.00 sec)

Cả 'Ram' và 'ram' đều trả về 'R500' - ký tự đầu luôn là chữ cái đầu tiên của chuỗi gốc (viết hoa).