1、(1241, 'Operand should contain 1 column(s)'),原因是数据类型出现错误,数据库中该字段是str类型,但是要插入的数据类型是list。
2、(1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '16:44:09,updated_at=2019-05-28 16:44:09 where name='满150.00元减25.00元'' at line 1") 原因是sql语句有错误,字段少了冒号了
例如: update crawled_activity set created_at=2019-05-28 16:44:09,updated_at=2019-05-28 16:44:09 where name=满150.00元减25.00元
正确的应该为 update crawled_activity set created_at='2019-05-28 16:44:09',updated_at='2019-05-28 16:44:09' where name='满150.00元减25.00元'
3、[Err] 1093 - You can't specify target table 's1_test' for update in FROM clause
这个错误的原因是:更新这个表的同时又查询了这个表,查询这个表的同时又去更新这个表,可以理解为死锁,所以出现了这个问题。
解决方法:在第一步中查询最小的编号时,不从主表中去查找,而是根据需要的字段从构建一个第三个表,,从第三个表中去获取数据。
MYSQL执行如下语句报错:
UPDATE sc SET grade =grade*1.05 WHERE grade < (SELECT AVG(grade) AS avg_grade FROM sc)
报错信息如下:
错误代码: 1093
You can't specify target table 'sc' for update in FROM clause
意思是不能在同一语句中更新select出的同一张表元组的属性值
解决方法:将select出的结果通过中间表再select一遍即可。
UPDATE sc SET grade =grade*1.05 WHERE grade < (SELECT avg_grade FROM (SELECT AVG(grade) AS avg_grade FROM sc) AS temp)
4、1248 - Every derived table must have its own alias (MYSQL错误)
这句话的意思是说每个派生出来的表都必须有一个自己的别名
我的Mysql语句是:select count(*) from (select * from dede_spacemoney group by sid)
;
当我执行到这里的时候就抛出了这个异常,原来我进行嵌套查询的时候子查询出来的的结果是作为一个派生表来进行上一级的查询的,所以子查询的结果必须要有一个别名
把MySQL语句改成:select count(*) from (select * from list where name="xiao") as t;
问题就解决了,虽然只加了一个没有任何作用的别名t,但这个别名是必须的!
————————————————
版权声明:本文为CSDN博主「爱佳男士」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/cao478208248/article/details/28122113
5、2013,Lost connection to MySQL server during query
自己遇到的一个mysql问题,感觉出现这个问题的原因是mysql连接过期了,就是建立了一个mysql连接(conn,cursor),然后一直没有用,超过等待超时时间后mysql连接失效,这个时候使用mysql连接就会报这个错误(在网上查到这个错误有多个原因,但是我遇到的这个问题应该是这个原因)。
查询mysql等待超时设置的时间指令:“show variables like 'wait_timeout'”。
解决办法,建立mysql连接池。