Php MYSQLi SELECT语句格式错误或顺序错误
使用下表“技术说明”:Php MYSQLi SELECT语句格式错误或顺序错误,php,select,mysqli,Php,Select,Mysqli,使用下表“技术说明”: SELECT * FROM `technotes` WHERE `techgroup` LIKE '%dispatch%' OR `techgroup` LIKE '%30243542%' AND `expires` >= '2014-12-18' AND `viewed` NOT LIKE '%30243542%' 和,使用以下SQLi查询: SELECT * FROM `technotes` WHERE
SELECT *
FROM
`technotes`
WHERE
`techgroup` LIKE '%dispatch%' OR
`techgroup` LIKE '%30243542%' AND
`expires` >= '2014-12-18' AND
`viewed` NOT LIKE '%30243542%'
和,使用以下SQLi查询:
SELECT *
FROM
`technotes`
WHERE
`techgroup` LIKE '%dispatch%' OR
`techgroup` LIKE '%30243542%' AND
`expires` >= '2014-12-18' AND
`viewed` NOT LIKE '%30243542%'
预计会返回alertid:23324325和23546576(第一个也是最后一个)。但是我得到的是返回的记录1,3,4,5。我在操作顺序中遗漏了一些内容,或者SQLi select语句中的某些其他组件格式不正确,但不确定是什么。有人能告诉我遗漏了什么或需要更改什么,这样才能正常工作吗?试试这个:
SELECT * FROM
`technotes`
WHERE
(`techgroup` LIKE '%dispatch%' OR `techgroup` LIKE '%30243542%')
AND `expires` >= '2014-12-18'
AND (`viewed` NOT LIKE '%30243542%' OR ISNULL(`viewed`) )
“expires”是日期时间字段吗?作为第一步,我将在条件周围添加括号,以确保优先级正确。我不确定MySQL是否提供或和更高的优先级。“expires”字段类型设置为“date”,包含括号中的前2个或多个条件您正在使用
或和和而不使用任何()
来指定所需的解析顺序: