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

Mysql LIKE क्लॉज और एक फील्ड में अलग-अलग शब्द

आप अपनी खोज स्ट्रिंग के किसी भी शब्द का मिलान करने के लिए REGEXP का उपयोग कर सकते हैं:

select *
from tbl
where
  title REGEXP CONCAT('[[:<:]](', REPLACE('Acme burger', ' ', '|'), ')[[:>:]]')

कृपया ध्यान दें कि यह बहुत कुशल नहीं होगा। फिडल देखें यहां

यदि आपको अपनी स्ट्रिंग के प्रत्येक शब्द का मिलान करने की आवश्यकता है, तो आप इस तरह की क्वेरी का उपयोग कर सकते हैं:

select *
from tbl
where
  title REGEXP CONCAT('[[:<:]]', REPLACE('Acme burger', ' ', '[[:>:]].*[[:<:]]'), '[[:>:]]')

फिडल यहां . लेकिन शब्दों को सही क्रम में होना चाहिए (जैसे 'एक्मे बर्गर' मेल खाएगा, 'बर्गर एक्मे' नहीं)। किसी भी क्रम में प्रत्येक शब्द से मेल खाने के लिए एक REGEXP है, लेकिन यह MySql द्वारा समर्थित नहीं है, जब तक कि आप एक UDF स्थापित नहीं करते जो Perl regexp का समर्थन करता हो।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL AVG के साथ दो तालिकाओं में शामिल हों

  2. जेपीए 2 पर सूची बनाम सेट - पेशेवरों / विपक्ष / सुविधा

  3. Mysql json आधारित ट्रेंडिंग टैग कार्यान्वयन

  4. चैट के लिए डीबी स्कीमा?

  5. एक चुनिंदा क्वेरी (MySQL) में केवल निरंतर डुप्लिकेट लेकिन सभी डुप्लिकेट को कैसे समाप्त करें?