精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
锐英源精品原创,禁止全文或局部转载,禁止任何形式的非法使用,侵权必究。点名“简易百科”和闲暇巴盗用锐英源原创内容
SQL语句专门用于处理数据库数据表数据,结构化数据的分析处理离不开SQL语句,但是复杂SQL语句的编写经常会遇到一些奇怪的问题,比如用MySQL Workbench编写SQL语句里遇到:Operand should contain 1 column(s)。
INSERT INTO `energysafe`.`peopledaydata` (`ddid`,`dname`,`pid`,`pname`,`dataname`,`safetype`, `factory`,`totalseconds`,`totalresult`,`limitv`,`saferesult`,`saferange`,`average`,`alarmtimes`, `alarmfirsttime`,`alarmlasttime`,`maxv`,`maxvtime`,`minv`,`minvtime`) select (`ddid`,`dname`,`pid`,`pname`,`dataname`,`safetype`,`factory`,`totalseconds`,`totalresult`, `limitv`,`saferesult`,`saferange`,`average`,`alarmtimes`,`alarmfirsttime`,`alarmlasttime`,`maxv`, `maxvtime`,`minv`,`minvtime`) from `energysafe`.`peoplecurrdata`;
这样编写会出到:Operand should contain 1 column(s),遇到是说操作需要一个列,但是这里INSERT INTO和select都有列啊,怎么还报错呢?
INSERT INTO `energysafe`.`peopledaydata` (`ddid`,`dname`,`pid`,`pname`,`dataname`,`safetype`, `factory`,`totalseconds`,`totalresult`,`limitv`,`saferesult`,`saferange`,`average`,`alarmtimes`, `alarmfirsttime`,`alarmlasttime`,`maxv`,`maxvtime`,`minv`,`minvtime`) select `ddid`,`dname`,`pid`,`pname`,`dataname`,`safetype`,`factory`,`totalseconds`,`totalresult`, `limitv`,`saferesult`,`saferange`,`average`,`alarmtimes`,`alarmfirsttime`,`alarmlasttime`,`maxv`, `maxvtime`,`minv`,`minvtime` from `energysafe`.`peoplecurrdata`;
select后面包含括号去掉就不报::Operand should contain 1 column(s)。想想,应该是select的字段列表不能带括号,带了括号会解释成其它的内容,就会报错了。
初学者因为写sql语句写的少,遇到sql语句错误会很头疼,请关注锐英源,收藏本站,会有大量这样的错误解决方案。标题错误也有可能在其它形式里出现,欢迎交流。