【发布时间】:2020-12-22 12:31:38
【问题描述】:
这是我的 SQL,数据由 PHP 提供
SELECT COUNT(*) FROM table
WHERE approve='true' AND `description`like '%".$name."%' OR `name`like '%".$name."%' OR `location` like '%".$location."%'
当我处理这个查询时,我能够查看approve 是false 的记录。
【问题讨论】:
-
您收到什么错误?您可能对使用此代码的 SQL 注入持开放态度。也许您需要使用分组
(),因为and会与or语句冲突。 -
或者我如何在单个语句中使用 AND 和 OR
-
sql 应该行批准='true',现在搜索描述和其他列
-
它当前运行为
approve='true' ANDdescriptionlike '%".$name."%'然后or和name like '%".$name."%'和or和location like '%".$location."%'。将or位组合在一起,因此这些位是可选位,如下面的答案所示。 -
我已经更新了我认为应该写的问题,如果不正确请调整。
标签: mysql sql where-clause operator-precedence