2014-12-12 2 views
0

У меня есть запрос MySQL следующим образомВ массиве и LIKE Условия использования MySQL Query

"SELECT * FROM `listings` 
WHERE `category` IN (".implode(",",$search_category_list).") 
OR `title` LIKE '%".$search_for."%' 
ORDER BY `id` DESC LIMIT 10" 

Это дает результат для только первое условие. Я не получаю результат от второго состояния. Но если я удалю первое условие и запустим запрос, то я буду знать, что это работает. I

"SELECT * FROM `listings` 
WHERE `title` LIKE '%".$search_for."%' 
ORDER BY `id` DESC LIMIT 10" 

он отлично работает.

Пожалуйста, помогите мне решить эту проблему.

+0

такого рода вещь умоляет связанное заявление. – PlantTheIdea

+0

Можете ли вы добавить значения для '$ search_for' и' search_category_list'? – Dinistro

+0

У тебя есть вид и предел. Этот вопрос задает вопрос - являются ли значения идентификаторов для любого совпадения заголовков на самом деле выше значений id для матчей в первой десятке? –

ответ

0

Имеет ли в списке $search_category строку или целочисленное значение?

Если он содержит строку, вам необходимо заключать в "" гольцах

Пример:

WHERE `category` IN ("cat1","cat2") 
+0

значения для $ search_category_list = array (123,167,156) и значение для $ search_for = "books" в таблице всего 10 строк, а 3 имеют категории 123, 167, 156 и 2 заголовка с «книгами». [Обратите внимание, что категория строки соответствия отличаются друг от друга по строкам заголовка. в соответствии с таблицей результат должен отображать 5 строк, т. е. 3 для состояния массива и 2 для аналогичного условия], но результаты показывают только 3 строки [которые находятся в совпадении с параметрами массива]. если я запускаю только с условием Like, результаты показывают совпадающие 2 строки. – user3680502

Смежные вопросы