作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个数据库,其中包含各种字段,包括名为“live”的枚举字段(“0”、“1”)。下面的查询工作正常,但是当我要求查询仅返回 live ='1' 的行时,它只是忽略这一点并且行为类似于第一个查询。如果有人可以提供任何建议,我将非常感激。
第一个查询工作正常:
$sql = "SELECT firstname,lname,id FROM members WHERE CONCAT(firstname, ' ', lname) LIKE '%$searchquery%' OR lname LIKE '%$searchquery%' OR firstname LIKE '%$searchquery%' ORDER BY id";
但是当我添加AND live = '1'时,它会忽略这一点。
$sql = "SELECT firstname,lname,id,live FROM members WHERE CONCAT(firstname, ' ', lname) LIKE '%$searchquery%' OR lname LIKE '%$searchquery%' OR firstname LIKE '%$searchquery%' AND live = '1' ORDER BY id";
如何只返回 live='1' 的行?
最佳答案
您必须将 OR 条件括在括号中:
$sql = "SELECT firstname,lname,id,live FROM members
WHERE
(
CONCAT(firstname, ' ', lname) LIKE '%$searchquery%'
OR lname LIKE '%$searchquery%'
OR firstname LIKE '%$searchquery%'
)
AND
live = '1' ORDER BY id";
关于php - 查询似乎不适用于枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28942461/
我是一名优秀的程序员,十分优秀!