【问题标题】:error with subquery in "if" statement (error code:1241)“if”语句中的子查询出错(错误代码:1241)
【发布时间】:2016-02-03 14:51:18
【问题描述】:

我的查询中有一个错误 - 我认为它逻辑上正确。

错误代码 1241:操作数应包含 1 列

1>0 仅供测试!我将在后端使用 php 更改它。

SELECT if(1>0,(SELECT
                count(lh_chat.dep_id) as chat_vorodi_be_saf,
                count(lh_chat.online_user_id) as tedad_chat_mojadad,
                count(lh_chat_online_user.rightel_number) as tedad_chat_shomare_yekta,
                count(chat_status.status) as chat_pasokh_dade_shode

                FROM
                  lh_chat
                INNER JOIN
                  lh_chat_online_user
                ON
                   lh_chat.id = lh_chat_online_user.chat_id
                INNER JOIN
                  chat_status
                ON
                  lh_chat.id = chat_status.chat_id where lh_chat.operation_ts between 0 and 1),'')

union all
SELECT if(1>0,(SELECT
                count(lh_chat.dep_id) as chat_vorodi_be_saf,
                count(lh_chat.online_user_id) as tedad_chat_mojadad,
                count(lh_chat_online_user.rightel_number) as tedad_chat_shomare_yekta,
                count(chat_status.status) as chat_pasokh_dade_shode

                FROM
                  lh_chat
                INNER JOIN
                  lh_chat_online_user
                ON
                   lh_chat.id = lh_chat_online_user.chat_id
                INNER JOIN
                  chat_status
                ON
                  lh_chat.id = chat_status.chat_id where lh_chat.operation_ts between 1 and 2),'')

union all
SELECT if(1>0,(SELECT
                count(lh_chat.dep_id) as chat_vorodi_be_saf,
                count(lh_chat.online_user_id) as tedad_chat_mojadad,
                count(lh_chat_online_user.rightel_number) as tedad_chat_shomare_yekta,
                count(chat_status.status) as chat_pasokh_dade_shode

                FROM
                  lh_chat
                INNER JOIN
                  lh_chat_online_user
                ON
                   lh_chat.id = lh_chat_online_user.chat_id
                INNER JOIN
                  chat_status
                ON
                  lh_chat.id = chat_status.chat_id where lh_chat.operation_ts between 2 and 3),'')

【问题讨论】:

  • 完整的错误是什么?
  • 亲爱的@sagi mysql 刚刚显示这个 -> 错误代码 1241:操作数应包含 1 列
  • 你用的是oracle还是mysql?我猜是mysql
  • 是的,我正在使用 mysql @moudiz

标签: mysql sql database oracle phpmyadmin


【解决方案1】:

这部分"if(1>0,(SELECT" SELECT后面必须只有一个字段。

【讨论】:

    【解决方案2】:

    我会使用 case 语句而不是 if。

    【讨论】:

    • 我有一个如果它意味着,查询应该在执行前检查
    • @daniel.lalasa:这不是if的意思。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-21
    • 1970-01-01
    • 1970-01-01
    • 2015-07-04
    • 1970-01-01
    • 2014-06-20
    • 1970-01-01
    相关资源
    最近更新 更多