как подсчитать появление слова в нескольких строках mysql db

Я ищу некоторую помощь с подсчетом количества вхождений в нескольких строках mysql db. Целью является создание поисковой системы, такой как google, но только для моего сайта

схема должна отображать запись, которая имеет наибольшее количество вхождений слова в самом верхнем

например. пользователь выполняет поиск ключа слова. Искаются записи и данные отображаются в порядке количества вхождений

1.this is a key which is a test key and also the profile key (3 occurences) 2.key give me a key (2 occurences) ....and so on... 

это лучший подход?

 SELECT (LENGTH(daya) - LENGTH(REPLACE(data, 'key', ''))) / LENGTH('key') AS `count` ORDER BY `count` DESC // data is the column name and key is the word 

или есть лучший

Примечание: я не хочу использовать Like % % . также я хочу показать количество раз, когда слово произошло, так the word key has occured 3 times Могу ли я использовать count()

Вы можете добавить счет в предложение ORDER BY .

Попробуйте так:

 SELECT *,(LENGTH(data) - LENGTH(REPLACE(data, 'key', ''))) / LENGTH('key') as cnt FROM TableName ORDER BY ((LENGTH(data) - LENGTH(REPLACE(data, 'key', ''))) / LENGTH('key')) DESC 

Чтобы получить записи из 2 вступлений, вы можете использовать предложение HAVING :

 SELECT *,(LENGTH(data) - LENGTH(REPLACE(data, 'key', ''))) / LENGTH('key') as cnt FROM TableName HAVING cnt=2 ORDER BY ((LENGTH(data) - LENGTH(REPLACE(data, 'key', ''))) / LENGTH('key')) DESC 

Ваш подход прекрасен, но вы можете обойтись без разделения с помощью одного персонажа более или менее:

 SELECT (LENGTH(REPLACE(data, 'key', 'key1')) - LENGTH(data)) as `count` FROM table t ORDER BY `count` DESC // data is the column name and key is the word 

Если вы хотите, чтобы значения отображались «n» раз, использование может использовать предложение having в MySQL:

 SELECT (LENGTH(REPLACE(data, 'key', 'key1')) - LENGTH(data)) as `count` FROM table t HAVING `count` = 2 ORDER BY `count` DESC // data is the column name and key is the word 

Это использование предложения having является расширением MySQL и не будет работать в других базах данных.