操作数应包含1列或语法错误

时间:2014-01-26 15:04:44

标签: mysql sql insert

我必须进行查询以在表中插入数据,从另一个表中选择一些字段并出现此错误:错误代码:1241。操作数应包含1列

查询如下:

INSERT into lezione  
(data, ora, punti, istruttore, bike, riserve, puntiAssenzaTempo,  
 puntiDisdettaTempo, orarioDisdetta, note, puntiAssenzaPunti, puntiDisdettaPunti,        special) 
values (str_to_date('17-02-2014', '%d-%m-%Y'), 
(SELECT punti, istruttore, bike, riserve, puntiAssenzaTempo,  
puntiDisdettaTempo, orarioDisdetta, note, puntiAssenzaPunti, puntiDisdettaPunti,  special 
FROM SettimanaTipo where giornoSettimana = 1))

在网上搜索我知道SELECT子句不需要括号,所以我删除了它们,查询如下

INSERT into lezione  
(data, ora, punti, istruttore, bike, riserve, puntiAssenzaTempo,  
 puntiDisdettaTempo, orarioDisdetta, note, puntiAssenzaPunti, puntiDisdettaPunti,        special) 
values (str_to_date('17-02-2014', '%d-%m-%Y'), 
SELECT punti, istruttore, bike, riserve, puntiAssenzaTempo,  
puntiDisdettaTempo, orarioDisdetta, note, puntiAssenzaPunti, puntiDisdettaPunti,  special 
FROM SettimanaTipo where giornoSettimana = 1)

但现在错误是这样的:错误代码:1064。您的SQL语法中有错误;查看与您的MySQL服务器版本对应的手册,以便在“SELECT punti,istruttore,bike,riserve,puntiAssenzaTempo,puntiDisdettaTempo”附近使用正确的语法,在第4行0.001秒

1 个答案:

答案 0 :(得分:1)

请改用以下查询:

INSERT into lezione  
(      data, ora, punti, istruttore, bike, riserve, puntiAssenzaTempo,  
       puntiDisdettaTempo, orarioDisdetta, note, puntiAssenzaPunti, 
       puntiDisdettaPunti, special)  

SELECT str_to_date('17-02-2014', '%d-%m-%Y'), punti, istruttore, bike, riserve, 
       puntiAssenzaTempo, puntiDisdettaTempo, orarioDisdetta, note, puntiAssenzaPunti, 
       puntiDisdettaPunti, special 
FROM SettimanaTipo WHERE giornoSettimana = 1

如果您只提供12个列,insert子句中有11个列,则会遇到一个问题,这就是您收到错误的原因1 => Error Code: 1241. Operand should contain 1 column(s)