如何在单个语句中使用 AND 和 OR

问题描述

这是我的 SQL,数据由 PHP 提供

SELECT COUNT(*) FROM table 
WHERE approve='true' AND `description`like '%".$name."%' OR  `name`like '%".$name."%' OR `location` like '%".$location."%'

我可以在处理此查询时查看 approvefalse 的记录。

解决方法

可能 ORed 条件应该放在括号中:

SELECT COUNT(*) 
FROM table 
WHERE 
    approve = 'true' 
    AND (
        `description` like CONCAT('%',:name,'%') 
        OR  `name`    like CONCAT('%','%') 
        OR `location` like CONCAT('%',:location,'%') 
    )

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...