[英]MySQL error 1241: Operand should contain 1 column(s)
我正在嘗試將表1中的數據插入表2中
insert into table2(Name,Subject,student_id,result)
select (Name,Subject,student_id,result)
from table1;
table2的鍵是student_id。
假定沒有任何重復項。
我收到錯誤消息: MySQL error 1241: Operand should contain 1 column(s)
table2中只有四列。
語法錯誤,從select
刪除( )
。
insert into table2 (name, subject, student_id, result)
select name, subject, student_id, result
from table1;
只需刪除SELECT語句上的(
和)
:
insert into table2 (Name, Subject, student_id, result)
select Name, Subject, student_id, result
from table1;
使解析器引發相同異常的另一種方法是以下不正確的子句。
SELECT r.name
FROM roles r
WHERE id IN ( SELECT role_id ,
system_user_id
FROM role_members m
WHERE r.id = m.role_id
AND m.system_user_id = intIdSystemUser
)
IN
子句中的嵌套SELECT
語句返回兩列,解析器將其視為操作數,這在技術上是正確的,因為id列與嵌套select語句返回的結果中只有一列(role_id)的值匹配,這是預期的返回列表。
為了完整起見,正確的語法如下。
SELECT r.name
FROM roles r
WHERE id IN ( SELECT role_id
FROM role_members m
WHERE r.id = m.role_id
AND m.system_user_id = intIdSystemUser
)
該查詢所占的存儲過程不僅被解析,而且還返回了預期的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.