Php sql“不可用”()不可用
我不知道我做错了什么。。。这是我的代码:Php sql“不可用”()不可用,php,mysql,sql,Php,Mysql,Sql,我不知道我做错了什么。。。这是我的代码: SELECT * FROM messages WHERE userId = "6" OR toUserId = "6" OR toAll = "1" AND id <> "4" ORDER BY time DESC LIMIT 1 问题是'is not'不起作用,它仍然返回id为4的结果。有什么问题吗 编辑:现在我遇到了以下问题: SELECT * FROM messages WHERE ( userId = "6" OR
SELECT *
FROM messages
WHERE userId = "6"
OR toUserId = "6"
OR toAll = "1"
AND id <> "4"
ORDER BY time DESC
LIMIT 1
问题是'is not'不起作用,它仍然返回id为4的结果。有什么问题吗
编辑:现在我遇到了以下问题:
SELECT *
FROM messages
WHERE (
userId = "6"
OR toUserId = "6"
OR toAll = "1"
)
AND id <> IN ('4','2')
ORDER BY time DESC
LIMIT 1
同样,问题是输出为false,这意味着这不起作用。您需要使用括号来表示运算符优先级:
WHERE (
userId = "6"
OR toUserId = "6"
OR toAll = "1"
)
AND id <> "4"
您需要使用括号来指示运算符优先级:
WHERE (
userId = "6"
OR toUserId = "6"
OR toAll = "1"
)
AND id <> "4"
我觉得您的查询条件应该是这样的:
WHERE
(userId = "6" OR toUserId = "6" OR toAll = "1")
AND (id <> "4")
您的查询将被评估为:
WHERE
(userId = "6" OR toUserId = "6") OR (toAll = "1" AND id <> "4")
这不是您想要的。我认为您的查询条件应该是这样的:
WHERE
(userId = "6" OR toUserId = "6" OR toAll = "1")
AND (id <> "4")
您的查询将被评估为:
WHERE
(userId = "6" OR toUserId = "6") OR (toAll = "1" AND id <> "4")
这不是你想要的