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

बेस्ट मैच द्वारा MySQL ऑर्डर

इसे पहले तरीके से करने के लिए (शब्द शुरू होता है, शब्द के बीच में, शब्द समाप्त होता है), कुछ इस तरह से प्रयास करें:

SELECT word
FROM words
WHERE word LIKE '%searchstring%'
ORDER BY
  CASE
    WHEN word LIKE 'searchstring%' THEN 1
    WHEN word LIKE '%searchstring' THEN 3
    ELSE 2
  END

इसे दूसरे तरीके से करने के लिए (मिलान स्ट्रिंग की स्थिति), LOCATE समारोह :

SELECT word
FROM words
WHERE word LIKE '%searchstring%'
ORDER BY LOCATE('searchstring', word)

उदाहरण के लिए, यदि एक से अधिक शब्द hab . से शुरू होते हैं, तो आप एक टाई-ब्रेकर भी चाह सकते हैं . ऐसा करने के लिए, मेरा सुझाव है:

SELECT word
FROM words
WHERE word LIKE '%searchstring%'
ORDER BY <whatever>, word

hab . से शुरू होने वाले कई शब्दों के मामले में , hab . से शुरू होने वाले शब्द एक साथ समूहबद्ध किया जाएगा और वर्णानुक्रम में क्रमबद्ध किया जाएगा।



  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 में किसी संख्या को Octal में बदलने के 2 तरीके

  2. क्रोम एक्सटेंशन से डीबी से कनेक्ट हो रहा है?

  3. पीडीओ के साथ पंक्ति गणना

  4. MySQL त्रुटि 1170 (42000):BLOB/TEXT कॉलम बिना कुंजी लंबाई के कुंजी विशिष्टता में प्रयुक्त

  5. MySQL में SYSDATE() बनाम Now():क्या अंतर है?