Die folgende Abfrage kann Ihnen die Anzahl der Vorkommen von Zeichenfolgen in beiden Spalten anzeigen, d. H. Text und Betreff, und die Ergebnisse nach den Kriterien sortieren, aber dies ist keine gute Lösung in Bezug auf die Leistung. Es ist besser, die Ergebnisse in Ihrer Anwendungscodeebene zu sortieren. P>
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
Fiddle-Demo
Vorgeschlagen von @lserni eine sauberere Methode zur Berechnung von Ereignissen
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