mysql - 操作数应包含 1 列 if 子句

标签 mysql database if-statement select

我不明白为什么这个查询是错误的。我单独尝试了 true 和 false 查询并且它有效,但是当我将它们放在 if 子句中时它不起作用。预先感谢您的帮助:)

SELECT 
IF ( 
    (SELECT useronline FROM wp_livechat ORDER BY id DESC LIMIT 1) = 1
    , 
    (SELECT *
     FROM wp_livechat
     WHERE id >= (SELECT id 
                  FROM wp_livechat
                  WHERE useronline = 0
                  ORDER BY id DESC
                  LIMIT 0, 1)
     AND id <= (SELECT id 
                FROM wp_livechat
                WHERE useronline = 1
                ORDER BY id DESC
                LIMIT 0, 1)
    ),
    (SELECT *
     FROM wp_livechat
     WHERE id >= (SELECT id 
                  FROM wp_livechat
                  WHERE useronline = 0
                  ORDER BY id DESC
                  LIMIT 1, 1)
     AND id <= (SELECT id 
                FROM wp_livechat
                WHERE useronline = 0
                ORDER BY id DESC
                LIMIT 0, 1)
    )
);

编辑:这是表格:https://ibb.co/huri6e

我想获取从最后一个 useronline = 0 到前一个 useronline = 0 的消息。如果最后一个条目是 useronline = 1 那么我想检索从最后一个 useronline = 1 条目到最后一个条目的消息useronline = 0 的条目。

最佳答案

我通过这个查询得到了它。无论如何,谢谢:)

SELECT *
FROM wp_livechat
WHERE ID > (
    SELECT IF ( 
    (SELECT useronline FROM wp_livechat ORDER BY ID DESC LIMIT 1) = 1,
        (SELECT ID 
        FROM wp_livechat
        WHERE useronline = 0
        ORDER BY id DESC LIMIT 0, 1)
    ,
        (SELECT ID 
        FROM wp_livechat
        WHERE useronline = 0
        ORDER BY id DESC LIMIT 1, 1)
    )
)
AND ID <= (SELECT ID FROM wp_livechat WHERE useronline = 1 ORDER BY ID DESC LIMIT 1);

关于mysql - 操作数应包含 1 列 if 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52407677/

相关文章:

php - 变量不流动?

mysql - 如何在 MySQL 中通过分组连接两个表?

php - 在sql语句中包含变量的正确方法是什么

python - 使用Python实时访问简单但大的数据集

sql-server - 需要好的方案/工作流程来使用 Subversion 管理数据库对象

python - 在 Python 2.7 中使用 cql 1.4.0 查询空字符串

c - 如何在 C 中绘制一个给定宽度和高度的空矩形?

c++ - 一种不使用 if 语句评估阈值的方法

c# - 如果 if 结构的第一部分为假,会发生什么?

php - mysql中每行有多个链接