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

โครงสร้างการค้นหาด้วย SOUNDEX() ใน MySQL

ฟังก์ชัน SOUNDEX()

SOUNDEX() ใช้สร้างรหัสเสียง (Phonetic code) สำหรับเปรียบเทียบคำที่ออกเสียงคล้ายกัน ตามการออกเสียงภาษาอังกฤษ

Syntax

SOUNDEX(str)

str = สตริงที่ต้องการหาค่า Soundex

ตัวอย่าง

mysql> SELECT SOUNDEX('MySQL');
+------------------+
| SOUNDEX('MySQL') |
+------------------+
| M240             |
+------------------+

mysql> SELECT SOUNDEX('harshit');
+--------------------+
| SOUNDEX('harshit') |
+--------------------+
| H623               |
+--------------------+

mysql> SELECT SOUNDEX('hrst');
+-----------------+
| SOUNDEX('hrst') |
+-----------------+
| H623            |
+-----------------+

การประยุกต์ใช้

'harshit' และ 'hrst' ให้ค่า Soundex เดียวกัน (H623) เพราะออกเสียงคล้ายกัน

ใช้ในการค้นหาชื่อที่สะกดผิดแต่ออกเสียงเหมือนกัน เช่น:

SELECT * FROM users WHERE SOUNDEX(name) = SOUNDEX('Smith');
-- จะหาได้ทั้ง Smith, Smyth, Smythe

ข้อจำกัด

  • ทำงานได้ดีกับภาษาอังกฤษ
  • ไม่เหมาะกับภาษาไทยหรือภาษาที่ไม่ใช่ Latin script
  • อาจให้ผลลัพธ์ผิดพลาดกับคำสั้นหรือคำที่ออกเสียงต่างกันมาก