MySQL 操作数应包含 2 列错误

标签 mysql sql

我在以下 SQL 查询中遇到错误。我几乎肯定这是最后一行,但我不知道如何正确构建它。

SELECT * FROM listfinal
    WHERE  (CourseID IN (SELECT CourseID FROM listfinal WHERE CourseID ='A E200'))
    AND (SELECT `Start Time`,`End Time` FROM listfinal WHERE `Days` LIKE ('%M%')) IN ((`Start Time` < 800 OR `Start Time` >= 1500) AND (`End Time` < 800 OR `End Time` >= 1500))

错误:

java.sql.SQLException: Operand should contain 2 column(s)

最佳答案

所以,你有这个:

SELECT * FROM listfinal
    WHERE (CourseID IN (SELECT CourseID 
                          FROM listfinal 
                         WHERE CourseID ='A E200'))

到目前为止,一切都很好。但这没有意义:

      AND (SELECT `Start Time`,`End Time` 
             FROM listfinal 
            WHERE `Days` LIKE '%M%') 

因为你不能AND子查询,这也没有意义:

IN ( (`Start Time` < 800 OR `Start Time` >= 1500) 
   AND (`End Time` < 800 OR `End Time` >= 1500) )

IN 运算符接受值列表作为参数。您没有给它一个值列表,而是给它一个 bool 表达式。你需要重新考虑这一点。我不知道你想完成什么,所以我不能确定你想做什么,但你可能正在寻找这样的东西:

AND (`Start Time` < 800 OR `Start Time` >= 1500) 
AND (`End Time` < 800 OR `End Time` >= 1500)

关于MySQL 操作数应包含 2 列错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42375775/

相关文章:

mysql - 寻找只教一个类的老师

mysql - 使用聚合 MIN 时,我无法让 mysql 返回最后一行

mysql - InnoDB 和计数 : Are helper tables the way to go?

java - JPA-连接非实体类中的两个表

php - 如何读取并显示一个:many tables in PHP?

sql - 为什么它给我 "Must declare the Scalar variable "@jobnumber""

mysql - 错误 : Cannot find module 'sequelize/types'

javascript - 如何显示来自文本区域输入的回车?

MySQL 当 SELECT 子查询返回多行时,如何 INSERT INTO 表?

python - 我正在为年度 session 事件制作一个由 SQL 支持的网站。我应该如何构建对象之间的边缘?