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

क्या MySQL में कॉलम के हिस्से पर साउंडएक्स का इस्तेमाल किया जा सकता है?

आपको प्रत्येक शब्द को तोड़ना होगा और SOUNDEX . करना होगा तुलना, जो कि मैं आपको इस फ़ंक्शन के बारे में बताने जा रहा हूं।

फ़ंक्शन का उपयोग करना

उदाहरण उपयोग:SELECT p.name FROM products p WHERE soundex_match('fiftythree', p.name, ' ')

इसमें 3 तर्क होते हैं:

  • सुई:वह शब्द जिसे आप ढूंढ रहे हैं
  • haysack:शब्दों की वह श्रंखला जिसके बीच आप खोज कर रहे हैं
  • splitChar:व्हाईटस्पेस चार्टर जो स्ट्रिंग को एकल शब्दों में विभाजित करेगा। आम तौर पर यह स्पेस (' ')
  • . है

यदि घास के ढेर में कोई शब्द सुई के समान लगता है, तो फ़ंक्शन 1 और 0 अन्यथा वापस आ जाएगा।

अपने डेटाबेस में फ़ंक्शन बनाना

तो अपने डेटाबेस (phpMyAdmin या कमांड लाइन) में जाएं और इसे निष्पादित करें, आपको इसे केवल एक बार करने की आवश्यकता है):

drop function if exists soundex_match;
delimiter $$
create function soundex_match (needle varchar(128), haystack text, splitChar varchar(1)) returns tinyint
  deterministic
  begin
    declare spacePos int;
    declare searchLen int default length(haystack);
    declare curWord varchar(128) default '';
    declare tempStr text default haystack;
    declare tmp text default '';
    declare soundx1 varchar(64) default soundex(needle);
    declare soundx2 varchar(64) default '';

    set spacePos = locate(splitChar, tempStr);

    while searchLen > 0 do
      if spacePos = 0 then
        set tmp = tempStr;
        select soundex(tmp) into soundx2;
        if soundx1 = soundx2 then
          return 1;
        else
          return 0;
        end if;
      end if;

      if spacePos != 0 then
        set tmp = substr(tempStr, 1, spacePos-1);
        set soundx2 = soundex(tmp);
        if soundx1 = soundx2 then
          return 1;
        end if;
        set tempStr = substr(tempStr, spacePos+1);
        set searchLen = length(tempStr);
      end if;

      set spacePos = locate(splitChar, tempStr);

    end while;

    return 0;

  end
$$
delimiter ;

http://www.imranulhoque.com/ mysql/mysql-function-soundex-match-multi-word-string/




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. अमेज़न आरडीएस सुरक्षा के साथ हरोकू

  2. MySQL कॉलम का नाम बदलें

  3. SQL क्वेरी के प्रत्येक निष्पादन पर यादृच्छिक अद्वितीय रिकॉर्ड का चयन कैसे करें

  4. C++ कनेक्टर में setBlob () का उपयोग करके बाइनरी डेटा कैसे सेट करें?

  5. मैं MySQL में एक प्रिंट स्टेटमेंट का अनुकरण कैसे कर सकता हूं?