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