Хорошо, у меня есть таблица с именем exp_category_posts
, которая отвечает за хранение отношений между entry_id
и всеми связанными cat_id
с, как строки в таблице (один столбец для entry_id
,один столбец для cat_id
)
Для поискового плагина, который я пишу, пользователь может искать по категориям, и я хочу вернуть все соответствующие записи.
Если я попытаюсь SELECT entry_id FROM exp_category_posts WHERE cat_id = 1 AND cat_id = 2
Я ожидаю получить набор записей, которые назначены обеим кошкам, но вместо этого я получаю пустой набор результатов каждый раз.Использование OR
не дает желаемого набора результатов.
Единственный найденный мной способ получить желаемые результаты - разбить его на этапы:
Шаг 1: Выполнитезапрос для каждого cat_id.
Шаг 2. Сохранение набора результатов в виде массива.
Шаг 3. Использование нескольких вызовов in_array()
для отфильтровывания записей, которые не во всех наборах результатов.
Хотя этот метод работает, он довольно неэффективен.Есть ли способ получить результаты, которые я хочу, с помощью одного запроса вместо того, чтобы делать это таким образом?