我的网站上有一个搜索栏,并构建了一个页面来显示在搜索中的关键字中具有 LIKE 描述和 LIKE 零件名称的零件。
is_sold 将始终为 1 或 0 的整数。
当获准显示在首页、搜索或类别列表中时,part_status 将始终为 1。
这是我的sql语句
$result = mysql_query("
SELECT *
FROM part
WHERE part_name LIKE '%" . $get_search . "%'
OR part_desc LIKE '%" . $get_search ."%'
AND is_sold = 0
AND part_status = 1
ORDER BY id DESC
")
无论是否通过审核,无论是否销售,它都在列出零件。
我遇到的问题是末尾的 AND 我为“is_sold”设置了整数(零件已售出和“part_status”(如果零件已获得管理员批准)。
最佳答案
您正在混合 and
和 or
而没有任何 ()
,这意味着 MySQL 将应用其内部运算符优先级规则:http://dev.mysql.com/doc/refman/5.0/en/operator-precedence.html
你可能想要:
((part_name LIKE x) OR (part_desc LIKE X)) AND (is_sold = 0) AND (part_status = 1)
请注意 或
组件周围的额外括号。
关于php - mysql where like and 语句不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26610466/