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

MySQL - सटीक प्रासंगिकता के साथ खोज परिणाम कैसे प्राप्त करें

आप स्ट्रिंग फ़ंक्शंस का उपयोग कर सकते हैं, जैसे:

select id, name
from subjects
where name like concat('%', @search, '%')
order by 
  name like concat(@search, '%') desc,
  ifnull(nullif(instr(name, concat(' ', @search)), 0), 99999),
  ifnull(nullif(instr(name, @search), 0), 99999),
  name;

यह आपको @search युक्त सभी प्रविष्टियाँ प्राप्त करता है। पहले वे जिनके पास शुरुआत में है, फिर जिनके पास रिक्त स्थान के बाद है, फिर घटना की स्थिति के अनुसार, फिर वर्णानुक्रम में।

name like concat(@search, '%') desc रास्ते में MySQL के बूलियन तर्क का उपयोग करता है। 1 =सत्य, 0 =असत्य, इसलिए इस अवरोही क्रम का क्रम आपको सबसे पहले सत्य देता है।

SQL fiddle:http://sqlfiddle.com/#!9/c6321a/1



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में LOCATE () फ़ंक्शन कैसे काम करता है

  2. JSON_QUOTE () - MySQL में JSON मानों के रूप में उपयोग किए जाने वाले स्ट्रिंग्स में वर्णों से कैसे बचें

  3. MySQL सर्वर सिस्टम वैरिएबल का नया मान सेट करने के लिए रीड-ओनली अनुमति को कैसे बदलें

  4. जटिल फ़िल्टरिंग के साथ 1 यादृच्छिक पंक्ति का चयन करें

  5. JDBC हमेशा MySQL तालिका की अंतिम पंक्ति का परीक्षण करता है?