我需要在userID=4
和状态=正在使用或待处理或已删除时获取我的数据。
但我得到的额外数据不确定原因。
我从
获取额外数据userid=3
MySQL查询是:
SELECT * FROM `registered_bicycle`
WHERE (`userID`='4')
AND (`status`='In Use')
OR (`status`='Pending')
OR (`status`='Deleted')
答案 0 :(得分:1)
您必须在(...)
语句周围使用OR
:
SELECT * FROM `registered_bicycle`
WHERE (`userID`='4')
AND (`status`='In Use'
OR `status`='Pending'
OR `status`='Deleted')
或使用IN
功能
答案 1 :(得分:1)
将部分放在大括号之后的AND
之间,否则会返回userID=4
或status=xy
SELECT * FROM `registered_bicycle` WHERE (`userID`='4') AND (
(`status`='In Use')
OR (`status`='Pending')
OR (`status`='Deleted')
)
答案 2 :(得分:0)
请改为尝试:
SELECT
*
FROM
`registered_bicycle`
WHERE `userID` = '4'
AND `status` IN('In Use','Pending','Deleted')
由于缺少正确的括号,你的and/or
逻辑混乱了。您也可以使用IN
而不是多个OR子句。
Btw ,IN
只是OR
答案 3 :(得分:0)
试试这个:
SELECT * FROM `registered_bicycle`
WHERE (`userID`='4')
AND `status`IN('In Use','Pending','Deleted')