Поиск по таблице с ключевыми словами

220
24 сентября 2017, 00:25

Есть таблица.

Запрос: красивый красный На выходе мы должны получить catalog_id: 1 - (полное соответствие), 4 - (красный)

Т.е суть в том, что сперва мы должны выбрать из таблицы все соответствия ключевых слов, потом мы получаем там где совпадает допустим 2 ключевых слова, а потом где одно.

Запрос может состоять из 10 ключевых, данных в таблице много, но как сделать релеватность в данном случае я никак не пойму.

Сумбурно написал, но суть в том: на входе n кол-во ключевых слов. Нужно сперва отобразить все найденные, потом в порядке убывания по кол-ву совпадений.

Answer 1

Если не ошибаюсь, то должно работать так

SELECT
  catalog_id,
  COUNT(*)
FROM
  mytable
WHERE
  keyword IN ('красивый', 'красный')
GROUP BY
  catalog_id
ORDER BY
  2 DESC
READ ALSO
Не найден индекс

Не найден индекс

Notice: Undefined index: set in C:\xampp\htdocs\DaizerCMS\engine\Core\Database\QueryBuilderphp on line 94

285
Ошибка после обновления Opencart c 2.2 До 2.3

Ошибка после обновления Opencart c 2.2 До 2.3

Возникла ошибка после обновления Opencart c 22 До 2

263
SMARTY Как передать функцию с дальнейшим изменением

SMARTY Как передать функцию с дальнейшим изменением

Как передать в SMARTY через $smarty->assign(); Данную функцию и использовать её дальше :

219
Почему куки устанавливаются как Session?

Почему куки устанавливаются как Session?

Устанавливаю Куки через phpИспользую данную запись: setCookie('usname', $_POST['name'], 2553454800, '/'); При этом в отладчике Chrome они отображаются как Session

152