php - MySQL Select 语句,WHERE 'IN' 子句

标签 php sql mysql select

目前我的表中有以下行:

         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/

相关文章:

php - 可捕获的 fatal error : Argument 1 passed to . .. 必须是...的实例,数组给定

php - 通过多个复选框从数据库表中排序 php

php - SQL 问题 - 在两个日期之间进行选择

mysql - 右连接查询不起作用

php - 在 PHP 中识别登录用户

php - 从MySQL中检索两级分层数据的最佳方法

php - 从数组生成动态链接

sql - Oracle SQL WITH 子句正确的用例和性能

php - "Conditional"根据字段值加入?

MySQL 在外部服务器上,拒绝有效用户的访问