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

मिलान किए गए शब्दों की संख्या गिनना

सुनिश्चित नहीं है कि यह एक बेहतर तरीका है, लेकिन मैं इसे इस तरह से करूंगा:

SELECT d.id, d.word, LEFT(d.description, 100) description,
  COALESCE(sum(v.vote), 0) votecount,
    (CONCAT(word, description, `usage`) LIKE '%George%')
  + (CONCAT(word, description, `usage`) LIKE '%Tabuki%')
  + (CONCAT(word, description, `usage`) LIKE '%Street%')
  + (CONCAT(word, description, `usage`) LIKE '%Fighter%')
  + (CONCAT(word, description, `usage`) LIKE '%Miley%')
  + (CONCAT(word, description, `usage`) LIKE '%Cyrus%') `match`
FROM definition d
LEFT JOIN vote v ON v.definition_id = d.id
GROUP BY d.id
HAVING `match` > 0
ORDER BY `match` DESC, votecount DESC

यदि तार काफी लंबे हैं, तो शायद दोहराए गए संयोजन में व्युत्पन्न तालिका बनाने की तुलना में अधिक समय लग सकता है (संभावना नहीं है, लेकिन यह इसे आज़माने लायक है):

SELECT id, word, description, votecount,
    (fullDesc LIKE '%George%')
  + (fullDesc LIKE '%Tabuki%')
  + (fullDesc LIKE '%Street%')
  + (fullDesc LIKE '%Fighter%')
  + (fullDesc LIKE '%Miley%')
  + (fullDesc LIKE '%Cyrus%') `match`
FROM (
  SELECT d.id, d.word, LEFT(d.description, 100) description,
    COALESCE(sum(vote), 0) votecount, CONCAT(word, description, `usage`) fullDesc
  FROM definition d
  LEFT JOIN vote v ON v.definition_id = d.id
  GROUP BY d.id
) s
HAVING `match` > 0
ORDER BY `match` DESC, votecount DESC



  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 पासवर्ड फ़ंक्शन

  2. आपके MySQL स्रोत-प्रतिकृति सर्वर के लिए महत्वपूर्ण स्वास्थ्य जांच

  3. मैं MySQL में ऑटोइनक्रिकमेंट फॉर्मेट को 0001 पर कैसे सेट कर सकता हूं?

  4. तालिका में पदानुक्रमित डेटा के सभी चाइल्ड नोड्स की गणना करें

  5. गिनें कि कितनी पंक्तियों का मान समान है