[英]help with sql query with parentheses
我有以下代码:
SELECT *
FROM table
WHERE thread = $thread
AND (user != $user1 OR user != $user2)
我希望代码选择包含$ thread的所有行,但用户不是$ user1或$ user2。
我的代码正确吗? 还是应该像这样:
SELECT *
FROM table
WHERE thread = $thread
(AND user != $user1 OR user != $user2)
提前致谢
采用:
SELECT t.*
FROM TABLE t
WHERE t.thread = mysql_real_escape_string($thread)
AND t.user NOT IN (mysql_real_escape_string($user1), mysql_real_escape_string($user2))
请使用mysql_real_escape_string ,否则可能会遭受SQL注入攻击 。
SELECT *
FROM table
WHERE thread = $thread
AND user != $user1
AND user != $user2
用这个:
SELECT *
FROM table
WHERE thread = $thread
(AND user != $user1 AND user != $user2)
因为您不希望用户是user1还是user2,因此在这里使用“ AND”将是正确的选择。
另外,如果$thread
不是整数字段,则需要将其用引号引起来,例如:
WHERE thread = '$thread'
您也可以使用
SELECT *
FROM table
WHERE thread = '$thread'
AND user NOT IN ($user1, $user2)
不知道哪个执行速度更快,但这是我的首选方式,因为我喜欢它的可读性更好。
我认为您也应该使用<>代替!=
所以:
SELECT *
FROM table
WHERE thread = $thread
AND user <> $user1
AND user <> $user2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.