【发布时间】:2014-12-12 15:28:28
【问题描述】:
我有一个mysql查询如下
"SELECT * FROM `listings`
WHERE `category` IN (".implode(",",$search_category_list).")
OR `title` LIKE '%".$search_for."%'
ORDER BY `id` DESC LIMIT 10"
它只给出第一个条件的结果。我没有从第二个条件得到结果。但是如果我删除第一个条件并运行查询,即
"SELECT * FROM `listings`
WHERE `title` LIKE '%".$search_for."%'
ORDER BY `id` DESC LIMIT 10"
效果很好。
请帮我解决这个问题。
【问题讨论】:
-
这种东西求有约束力的说法。
-
您能否添加
$search_for和search_category_list的值? -
你有一个排序和一个限制。这就引出了一个问题——任何标题匹配的 id 值实际上是否高于前十个类别匹配的 id 值?
-
#dinistro $search_category_list = array(123,167,156) 的值和 $search_for = "books" 的值
-
要解决此问题,请从查询中删除
LIMIT 10。您是否仍然无法收到与WHERE ... OR子句的第二部分匹配的任何行?