MariaDB
 sql >> डेटाबेस >  >> RDS >> MariaDB

कैसे SOUNDEX () मारियाडीबी में काम करता है

मारियाडीबी में, SOUNDEX() एक अंतर्निहित स्ट्रिंग फ़ंक्शन है जो किसी दिए गए स्ट्रिंग से साउंडेक्स स्ट्रिंग लौटाता है।

साउंडेक्स ध्वनि द्वारा नामों को अनुक्रमित करने के लिए एक ध्वन्यात्मक एल्गोरिथ्म है, जैसा कि अंग्रेजी में उच्चारित किया गया है। यदि दो शब्द एक जैसे लगते हैं, तो उनमें एक ही साउंडेक्स स्ट्रिंग होनी चाहिए। अगर दो शब्द एक जैसे लगते हैं, लेकिन बिल्कुल एक जैसे नहीं हैं, तो उनकी साउंडेक्स स्ट्रिंग एक जैसी दिख सकती है लेकिन बिल्कुल एक जैसी नहीं।

फ़ंक्शन एक तर्क को स्वीकार करता है:वह स्ट्रिंग जिसके लिए साउंडेक्स स्ट्रिंग को वापस करना है।

सिंटैक्स

वाक्य रचना इस प्रकार है:

SOUNDEX(str) 

जहां str वह स्ट्रिंग है जिसके लिए साउंडेक्स स्ट्रिंग को वापस करना है।

उदाहरण

यहां एक बुनियादी उदाहरण दिया गया है:

SELECT SOUNDEX('Bat');SELECT चुनें 

परिणाम:

+----------------+| SOUNDEX('बैट') |+----------------+| बी300 |+----------------+

यहां एक और उदाहरण दिया गया है जो समान, लेकिन भिन्न, ध्वनि वाले शब्दों से लौटाए गए साउंडेक्स स्ट्रिंग की तुलना करता है:

SELECT 
    SOUNDEX('Bat'),
    SOUNDEX('Cat'),
    SOUNDEX('Cap'); चुनें 

परिणाम:

+----------------+----------------+--------------- ----+| साउंडडेक्स ('बैट') | साउंडडेक्स ('बिल्ली') | SOUNDEX ('कैप') | --------+| बी300 | सी300 | सी100 |+----------------+----------------+--------------- ---+

और यहाँ एक है जो उन शब्दों की तुलना करता है जो एक जैसे नहीं लगते:

 SELECT 
    SOUNDEX('Apartment'),
    SOUNDEX('Vehicle'),
    SOUNDEX('Groceries'); 

परिणाम:

+--------------------------+--------------------------+-- ------------------------+| SOUNDEX('अपार्टमेंट') | SOUNDEX ('वाहन') | SOUNDEX('किराने का सामान') | -+--------------------------+| ए16353 | वी240 | G6262 |+--------------------------+--------------------------+--- -------------------+

मुझे यह उल्लेख करना चाहिए कि यह फ़ंक्शन मूल साउंडएक्स एल्गोरिदम लागू करता है जो पहले स्वरों को छोड़ देता है और दूसरा डुप्लिकेट करता है। यह उन्नत संस्करण के विपरीत है, जो डुप्लिकेट को पहले और स्वरों को दूसरे स्थान पर छोड़ देता है।

साथ ही, एक मानक साउंडेक्स स्ट्रिंग चार वर्ण लंबी होती है, लेकिन मारियाडीबी का SOUNDEX() फ़ंक्शन एक मनमाने ढंग से लंबी स्ट्रिंग देता है। इसलिए उपरोक्त परिणामों में गैर-मानक साउंडेक्स स्ट्रिंग्स शामिल हैं।

मेरा क्या मतलब है, यह स्पष्ट करने के लिए, ओरेकल के SOUNDEX() का उपयोग करते समय मुझे जो परिणाम मिलता है, वह यहां दिया गया है एक ही काम करने के लिए कार्य करें:

 SELECT 
    SOUNDEX('Apartment'),
    SOUNDEX('Vehicle'),
    SOUNDEX('Groceries')
FROM DUAL; 

परिणाम:

 SOUNDEX('अपार्टमेंट') SOUNDEX('Vehicle') SOUNDEX('किराने') 

सटीक मिलान

यहां उन शब्दों के जोड़े का उदाहरण दिया गया है, जिनका साउंडेक्स स्ट्रिंग से मेल खाता है, भले ही वे अलग-अलग शब्द हों, जिनका अर्थ अलग-अलग हो:

SELECT 
    SOUNDEX('Dam') AS Dam, 
    SOUNDEX('Damn') AS Damn, 
    SOUNDEX('Too') AS Too, 
    SOUNDEX('Two') AS Two; 

परिणाम:

+----------+----------+----------+------+| बांध | धिक्कार है | बहुत | दो |+----------+----------+----------+------+| डी500 | डी500 | टी000 | टी000 |+----------+------+----------+------+

डेटाबेस उदाहरण

डेटाबेस क्वेरी से साउंडेक्स स्ट्रिंग प्राप्त करने का एक उदाहरण यहां दिया गया है:

SELECT 
    PetName, 
    SOUNDEX(PetName)
FROM Pets; 

परिणाम:

+------+---------------------+| पेटनाम | SOUNDEX(पेटनाम) |+-----------+----------------------+| शराबी | F410 || फ़ेच | F320 || खरोंच | एस632 || वैग | W200 || ट्वीट | टी000 || शराबी | F410 || छाल | बी620 || म्याऊ | M000 |+---------+---------------------+

हम SOUNDEX() . का भी उपयोग कर सकते हैं एक WHERE . में केवल उन पंक्तियों को वापस करने के लिए खंड जो किसी दिए गए शब्द की तरह लगती हैं:

SELECT 
    PetName, 
    SOUNDEX(PetName),
    SOUNDEX('Wagg')
FROM Pets
WHERE SOUNDEX(PetName) = SOUNDEX('Wagg'); 

परिणाम:

+------+----------------------+--------------------- +| पेटनाम | SOUNDEX (पेटनाम) | SOUNDEX('Wagg') |+-----------+---------------------+------------- ----+| वैग | W200 | W200 |+----- 

हालांकि, आप SOUNDS LIKE . का उपयोग करना पसंद कर सकते हैं इसके बजाय, जो समान कार्य करने का अधिक संक्षिप्त तरीका है।

खाली स्ट्रिंग

यहाँ क्या होता है जब प्रत्येक दिए गए तर्क के लिए एक खाली स्ट्रिंग पास की जाती है:

 SELECT SOUNDEX(''); 

परिणाम:

+---------------+| SOUNDEX('') |+----------------+| |+---------------+

अशक्त तर्क

पासिंग null रिटर्न null :

 SELECT SOUNDEX(null); 

परिणाम:

+---------------+| ध्वनि (शून्य) |+---------------+| नल |+---------------+

अनुपलब्ध तर्क

कॉलिंग SOUNDEX() तर्कों की गलत संख्या के साथ, या बिना कोई तर्क पारित किए त्रुटि उत्पन्न होती है:

SELECT SOUNDEX(); 

परिणाम:

ERROR 1582 (42000):नेटिव फंक्शन 'SOUNDEX' पर कॉल में गलत पैरामीटर गिनती

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मारियाडीबी में उपलब्ध मिलान प्राप्त करने के 3 तरीके

  2. मारियाडीबी संस्करण () समझाया गया

  3. MariaDB में किसी तिथि से एक वर्ष कैसे घटाएं?

  4. डेबियन जेसी में मारियाडीबी 10.1 स्थापित करना और विभिन्न मारियाडीबी क्वेरी चलाना

  5. स्ट्रीमिंग प्रतिकृति और मारियाडीबी 10.4 . के साथ बड़े लेनदेन को संभालना