簡體   English   中英

MySQL錯誤1241:操作數應包含1列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM