目前我的表中有以下行:
course_data:
user_id days <-- This is a varchar column.
405 1,3,5
我正在尝试执行以下 SELECT 语句:
SELECT usrID, usrFirst, usrLast, usrEmail
FROM tblUsers
WHERE usrID NOT IN
(
SELECT users.usrID
FROM
`course_data` courses,
`tblUsers` users
WHERE
days IN ('$day')
)
GROUP BY usrID
ORDER BY usrID
基本上,如果 $day 变量包含“1、3 或 5”,我希望忽略该行(用户 405)。
例如,如果 $day = "1"
,它应该返回一个空查询(因为数字“1”在列“1,3,5”中)。
但是,我还没有发现是这种情况。即使 $day = "1"
,它仍然会返回该行。
它不会返回该行的唯一方法是 if $day= "1,3,5."
但是,我认为 IN() 子句会占用我的任何部分变量并将其应用于该列。
对我在这里做错了什么有任何见解吗?谢谢。
最佳答案
删除 IN 语句中的引号。语法是:
... WHERE column IN (1,2,3)
不是你用的那样
... WHERE column IN ('1,2,3')
另见 documentation在 IN 上,还有更多的例子。
关于php - MySQL Select 语句,WHERE 'IN' 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1586087/