解决sql update 1292 - Truncated incorrect DOUBLE value:

出现这种错误,我属实焦头烂额了一会儿,这个错误基本可以分为以下两种情况:

一:你的字段类型是varchar,但是你这样进行操作,是不对的,

UPDATE StuCose
SET Cno=60

应该是:

UPDATE StuCose
SET Cno='60'

二:你更新操作进行子查询时,需要的两个表的相同的字段的类型不同,比如你的cose表中的Cno是int类型,

解决sql update 1292 - Truncated incorrect DOUBLE value:_第1张图片

但是你的stucose表中是varchar类型

解决sql update 1292 - Truncated incorrect DOUBLE value:_第2张图片

 ,这个时候类似这样进行了子查询的update就会报错

UPDATE StuCose
SET Grade=60
WHERE Sno IN(
	 SELECT Sno
	 FROM (
		 SELECT Sno
		  FROM stucose 
		   WHERE Grade<=ALL(
			    SELECT MIN(Grade)
			    FROM stucose s2
			    WHERE  s2.Cno IN(
				SELECT Cno
				FROM cose
				WHERE Cname='DS'
			    ) 
		  )) AS a
	  
)  
;

总结:1:要注意字段类型的sql语法规范

           2:要注意子查询时不同表间相同的字段类型要相同。 

你可能感兴趣的:(学习问题,mysql,sql,经验分享)