Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm cách nào để sử dụng hàm MySQL SOUNDEX () với toán tử LIKE để lấy các bản ghi từ bảng?


Như chúng ta biết rằng hàm SOUNDEX () được sử dụng để trả về soundex, một thuật toán phiên âm để lập chỉ mục các tên sau cách phát âm tiếng Anh của âm, một chuỗi của một chuỗi. Trong ví dụ sau, chúng tôi đang lấy dữ liệu từ bảng ‘student_info’ và áp dụng hàm SOUNDEX () với toán tử LIKE để truy xuất một bản ghi cụ thể từ một bảng -

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 tôi đã sử dụng tên của cột làm đối số của hàm SOUNDEX () và nó trả về hàng có giá trị SOUNDEX LIKE% G%.

Hãy nhớ đầu ra của hàm SOUNDEX () sẽ luôn chứa ký tự đầu tiên của chuỗi được truyền vào nó dưới dạng đối số. Ví dụ:nếu chúng ta truyền ‘Ram’ làm đối số của hàm SOUNDEX () thì hãy xem kết quả đầu ra, nó chứa ‘R’ là ký tự đầu tiên -

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)