0
我有一个简单的mysql查询,如下所示。Mysql查询忽略和where子句
SELECT `om_user`.`id` , `om_user`.`username` , `om_user`.`firstName` , `om_user`.`lastName` , `om_user`.`role` , `om_user`.`email` , `om_user`.`status`
FROM `om_user`
WHERE (
id LIKE 'admin%'
)
OR (
username LIKE 'admin%'
)
OR (
PASSWORD LIKE 'admin%'
)
OR (
salt LIKE 'admin%'
)
OR (
role LIKE 'admin%'
)
OR (
firstName LIKE 'admin%'
)
OR (
lastName LIKE 'admin%'
)
OR (
addressLine1 LIKE 'admin%'
)
OR (
addressLine2 LIKE 'admin%'
)
OR (
addressLine3 LIKE 'admin%'
)
OR (
city LIKE 'admin%'
)
OR (
county LIKE 'admin%'
)
OR (
postcode LIKE 'admin%'
)
OR (
country LIKE 'admin%'
)
OR (
email LIKE 'admin%'
)
OR (
contactNo LIKE 'admin%'
)
OR (
avatar LIKE 'admin%'
)
OR (
STATUS LIKE 'admin%'
)
OR (
passwordRequestStatus LIKE 'admin%'
)
OR (
passwordResetCount LIKE 'admin%'
)
OR (
passwordResetSalt LIKE 'admin%'
)
OR (
passwordResetTime LIKE 'admin%'
)
OR (
createdOn LIKE 'admin%'
)
OR (
createdBy LIKE 'admin%'
)
OR (
lastUpdateOn LIKE 'admin%'
)
OR (
lastUpdateBy LIKE 'admin%'
)
OR (
active LIKE 'admin%'
)
AND (
active =1
)
ORDER BY `id` DESC
LIMIT 0 , 30
但由于某种原因,它忽略了active=1
条件。而不是忽略active
列中值为0的记录,它仍会显示它们。
任何人都可以帮助我吗?
在此先感谢。
我认为你需要在所有“OR”子句中加括号。选择... from ... where((a = 1)or(b = 1))and active = 1 – 2014-10-17 15:09:35
不完全确定,但是您是否需要将1更改为True? – sjramsay 2014-10-17 15:11:09