2016-11-27 4 views
0


Я новичок здесь, так извините, если мой вопрос не так хорош, как вы можете привыкнуть.
В основном у меня есть база данных MySQL с несколькими столбцами, такими как «имя», «описание» и «теги».
Если мой пользователь искал определенное слово, такое как «яблоко», как бы я прошел через все столбцы и возвратил строки в порядке наиболее распространенных до наименее распространенных.
Примером может служить: пользователь ищет «яблоко», а первый результат будет отображаться в верхней части списка (как моя текущая система), однако «банан» имеет большее количество явлений в описании и тегах, поэтому Я хочу, чтобы это было на вершине.
Я действительно надеюсь, что это имеет смысл и спасибо за любую помощь!
РЕДАКТИРОВАТЬ: По-видимому, это слишком широкое, поэтому очень просто. 3 столбца (имя, описание, теги). Скажем, там 3 ряда, с именами: яблоко, банан, виноград. Если мой пользователь ищет яблоко, я НЕ хочу, чтобы яблоко отображалось в верхней части результатов, как оно есть в самой базе данных. Я хочу проверить все 3 столбца и перечислить их по порядку всех вхождений. Например, если у винограда 20 случаев, а у банана 17, а у яблока 3, то результаты поиска будут перечислены в порядке: виноград, банан, яблоко. То, что я в настоящее время является: "SELECT * FROM items WHERE name LIKE '%$result%'"Список самых распространенных в MySQL

+0

Неа, не получить его вы можете публиковать некоторые данные выборки? –

+0

Когда пользователь ищет 'apple', это' имя'? –

ответ

1

Вы можете просто посчитать его с помощью встроенного в функцию счета в MySQL

Следующий пример подсчитывает количество раз «UserId» были использованы, но вы можете изменить его к вашему необходимость.

Mysql COUNT documentation

SELECT UserId, COUNT(*) 
FROM badges 
GROUP BY UserId 
ORDER BY COUNT(*) DESC 
Смежные вопросы