操作数应该包含mysql中的1列错误

时间:2015-03-15 00:46:43

标签: mysql

这是我的mysql查询。有谁知道错误是什么以及如何修复它?

感谢。

SQL query: Documentation

INSERT IGNORE
INTO thread_user (thread_id,user_id,last_read_date)
SELECT 24,1,NOW()
UNION
SELECT 24, b.a, NOW()
FROM (SELECT (2,3,4) AS a) b

MySQL said: Documentation
#1241 - Operand should contain 1 column(s) 

1 个答案:

答案 0 :(得分:2)

我猜你想在第二个子查询中有三行。表达式(2, 3, 4)导致错误。

INSERT IGNORE INTO thread_user(thread_id,user_id,last_read_date)
    SELECT 24, 1, NOW()
    UNION ALL
    SELECT 24, b.a, NOW()
    FROM (SELECT 2 as a UNION ALL
          SELECT 3 UNION ALL
          SELECT 4 
         ) b;

这只是猜测你的意图。请注意,外部UNION可以是UNION ALL - 您应该始终使用后者,除非您想要承担删除重复项的开销。