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

MySQL घटनाओं की संख्या के अनुसार क्रमबद्ध करें

नीचे दी गई क्वेरी आपको कॉलम यानी टेक्स्ट और विषय दोनों में स्ट्रिंग की घटनाओं की संख्या दे सकती है और मानदंडों के आधार पर परिणामों को क्रमबद्ध करेगी लेकिन यह आपके आवेदन कोड स्तर में परिणामों को क्रमबद्ध करने के लिए बेहतर समाधान प्रदर्शन नहीं होगा।

SELECT *,
(LENGTH(`Text`) - LENGTH(REPLACE(`Text`, 'Keyword', ''))) / LENGTH('Keyword')
+
(LENGTH(`Subject`) - LENGTH(REPLACE(`Subject`, 'Keyword', ''))) / LENGTH('Keyword') `occurences`
 FROM 
`Table`
 WHERE (Text LIKE '%Keyword%' OR Subject LIKE '%Keyword%')
ORDER BY `occurences`  DESC

फिडल डेमो

@lserni . द्वारा सुझाया गया घटनाओं की गणना का अधिक स्वच्छ तरीका

SELECT *,
(LENGTH(`Text`) - LENGTH(REPLACE(`Text`, 'test', ''))) / LENGTH('test') `appears_in_text`,

(LENGTH(`Subject`) - LENGTH(REPLACE(`Subject`, 'test', ''))) / LENGTH('test') `appears_in_subject`,

(LENGTH(CONCAT(`Text`,' ',`Subject`)) - LENGTH(REPLACE(CONCAT(`Text`,' ',`Subject`), 'test', ''))) / LENGTH('test') `occurences`
 FROM 
`Table1`
 WHERE (TEXT LIKE '%test%' OR SUBJECT LIKE '%test%')
ORDER BY `occurences`  DESC

Fiddle Demo 2



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. अखंडता बाधा उल्लंघन:1452 लार्वा

  2. MySQL में DATALENGTH () समतुल्य क्या है?

  3. क्या मैं Laravel के डेटाबेस लेयर स्टैंडअलोन का उपयोग कर सकता हूं?

  4. Neo4j स्थापना

  5. MySQL क्रैश (कुछ पॉइंटर्स अमान्य हो सकते हैं और डंप को निरस्त करने का कारण बन सकते हैं)