Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

SOUNDS LIKE Operator ค้นหาของที่มีเสียงคล้ายกัน

ค้นหาตามการออกเสียง (Phonetic Search)

expr1 SOUNDS LIKE expr2 เทียบเท่า SOUNDEX(expr1) = SOUNDEX(expr2)

Syntax

Expression1 SOUNDS LIKE Expression2

ตัวอย่าง

mysql> SELECT Id, Name, Address, Subject 
       FROM student 
       WHERE name SOUNDS LIKE 'garav';
+------+--------+---------+-----------+
| Id   | Name   | Address | Subject   |
+------+--------+---------+-----------+
| 1    | Gaurav | Delhi   | Computers |
| 20   | Gaurav | Jaipur  | Computers |
+------+--------+---------+-----------+

การทำงาน

  • 'garav' และ 'Gaurav' มี Soundex เดียวกัน
  • ค้นหาได้แม้สะกดผิดเล็กน้อย
  • ใช้ Soundex algorithm ภาษาอังกฤษ

ข้อจำกัด

  • เฉพาะภาษาอังกฤษ
  • ไม่เหมาะกับชื่อไทย
  • อาจให้ False positive (คำที่ออกเสียงต่างกันแต่ Soundex เหมือน)

ตัวเลือกอื่น

  • SOUNDEX() function โดยตรง
  • Full-text search with ngram parser (MySQL 5.7.6+)
  • Third-party: pg_trgm (PostgreSQL), Elasticsearch