На моем сайте, у меня есть система категоризации содержимого на столе T.Categories
в строке MySQL выглядит какКак определить, является ли элемент «word4» строки «word1; word2; word3; word4» в строке «word4», «word5», «word6», «word7»?
category1;category2;category3;category4
(это может быть более или менее).
С другой стороны, я позволяю своим пользователям выбирать категории, которые их интересуют. В основном, они делают свой выбор на форму и результат отображается в РНР переменной $var
выглядит как
category2','category4','category5
(и т.д.)
Запрашивая
T.Categories IN ('".$var."'))";
Я могу детерминированным, если содержание соответствует их интересам, только тогда, когда содержание с в соответствии с ОДНОЙ ОДНОЙ категорией.
К примеру:
- Я фото в категории под названием «Кот»
- Мои пользователи хотят видеть фотографии, которые принадлежат к «Cat» и категории «Собаки»
- Мой SQL запрос выглядит
SELECT * FROM T Where T.Categories IN ('".$var."'))";
практически, я говорю SGBD смотреть, если содержание T.Categories находится в списке $ вар
Он работает, когда в T.Categories есть только одна категория. «Является ли Cat IN $ var? Yes, Cat в« Cat »,« Dog ». Затем я получаю контент для пользователя (потому что Cat находится в $ var)»
Но он больше не работает, если есть более чем одной категории в T.Categories. Потому что все категории хранятся в категории category1, category2, category3, category4. К несчастью: строка «Кошка», «Лошадь, утка» не входит в «Кошку», «Собака» (MySQL ищет всю строку)
Что мне нужно, чтобы разобрать Кота, Лошадь, Утка в трех частях чтобы заставить SGBD искать каждую часть в списке $ var. Is Cat IN $ var? Да, Кот в «Кот», «Собака». Лошадь в $ var? Нет, Лошадь не в «Кошку», «Собака». Является ли утка в $ var? нет, Утка не в «Кот», «Собака». Затем я получаю контент для пользователя (потому что Cat находится в $ var).
Как я мог достичь своей цели, используя один запрос?
Вам необходимо осуществить надлежащую поисковую систему; таких как сольр. Начните [здесь] (http://stackoverflow.com/questions/1893857/how-to-use-solr-with-mysql-and-php), а затем [здесь] (http://stackoverflow.com/questions/ 17907188/индексации-MySQL-в-Apache-Solr). –
Может быть, немного сложно для меня в этот момент моего обучения, но определенно интересно! спасибо –