我有以下查询:
$query="SELECT * FROM products
WHERE productname LIKE '%$searchterm%'
OR shortdescription LIKE '%$searchterm%'
OR description LIKE '%$searchterm%' AND VISIBLE != 0";
查询返回我想要的记录,但也返回 visible = 0 的记录。
谁能告诉我我做错了什么?
问候,卓然
最佳答案
运算符 AND
先运行,然后运行 OR
。
所以你的查询是这样的:
$query="SELECT * FROM products
WHERE productname LIKE '%$searchterm%'
OR shortdescription LIKE '%$searchterm%'
OR (description LIKE '%$searchterm%' AND VISIBLE != 0");
将您的查询修正为:
$query="SELECT * FROM products
WHERE (productname LIKE '%$searchterm%'
OR shortdescription LIKE '%$searchterm%'
OR description LIKE '%$searchterm%') AND VISIBLE != 0";
关于具有 LIKE 和 AND 子句的 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15914978/