mysql中的操作数应包含1列错误
这是我的mysql查询。有人知道错误是什么以及如何修复它吗 谢谢mysql中的操作数应包含1列错误,mysql,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
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)
我猜您希望在第二个子查询中有三行。表达式
(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
——您应该始终使用后者,除非您想承担删除重复项的开销。什么是(选择(2,3,4)作为a)
应该做什么?创建一个名为a的1列表,行是2,3,4。上面的查询是在用户输入上运行php代码的结果。这是可行的,但我可以通过将选择分离为INSERT IGNORE into thread\u user(thread\u id,user\u id,last\u read\u date)SELECT 24,1,NOW()UNION SELECT 24,2,NOW()UNION SELECT 24,3,NOW()UNION SELECT 24,4,NOW()