SOUNDS LIKE ऑपरेटर दो एक्सप्रेशन्स की तुलना उनके अंग्रेजी उच्चारण (SOUNDEX एल्गोरिदम) के आधार पर करता है।
सिंटैक्स
expr1 SOUNDS LIKE expr2
आंतरिक रूप से: SOUNDEX(expr1) = SOUNDEX(expr2)
उदाहरण: student टेबल में 'garav' जैसा नाम खोजें
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 कोड समान:
G610
उपयोग के मामले
- फजी नाम खोज (टाइपो सहनशील)
- संपर्क/ग्राहक डेटाबेस में डुप्लिकेट पहचान
- वॉइस-टू-टेक्स्ट इनपुट प्रोसेसिंग
सीमाएं
- केवल अंग्रेजी उच्चारण नियम
- इंडेक्स उपयोग नहीं कर सकता (फुल टेबल स्कैन)
- बड़े डेटासेट के लिए: SOUNDEX कॉलम प्रीकंप्यूट करें और इंडेक्स करें
ऑप्टिमाइज़ेशन टिप
-- SOUNDEX कॉलम जोड़ें
ALTER TABLE student ADD COLUMN name_soundex CHAR(4)
GENERATED ALWAYS AS (SOUNDEX(Name)) STORED;
-- इंडेक्स बनाएं
CREATE INDEX idx_name_soundex ON student(name_soundex);
-- तेज खोज
SELECT * FROM student WHERE name_soundex = SOUNDEX('garav');