我有一个很大的查询,但我会简化它很多,只有相关的东西。查询。 $sql = "SELECT *
FROM articles a
WHERE a.published=1
OR a.published=0
AND a.title LIKE '%$keyword%'
OR a.summary LIKE '%$keyword%';我做错的是 AND 和 OR,在上面的例子中我想显示所有发布的文章是 0 或 1 并且 a.title 必须包含 'Lorum' ora.summary 必须包含 'Lorum'。目前,当我运行查询时,它会返回所有文章,甚至是那些与关键字不匹配的文章,这是因为 OR 运算符与 a.published,我知道这一点,因为当我删除该部分时,查询工作正常。
2 回答
米脂
TA贡献1836条经验 获得超3个赞
您只需要在 SQL 语句中包含括号即可对运算符进行分组,例如
$sql = "SELECT * FROM articles a WHERE (a.published=1 OR a.published=0) AND (a.title LIKE '%$keyword%' OR a.summary LIKE '%$keyword%');
忽然笑
TA贡献1806条经验 获得超5个赞
使用 IN 命令将您的发布分组为 1 个逻辑。
$sql = "SELECT * FROM articles a WHERE a.published IN (1,0) AND a.title LIKE '%$keyword%' OR a.summary LIKE '%$keyword%';
- 2 回答
- 0 关注
- 151 浏览
添加回答
举报
0/150
提交
取消