在严格模式下使用MYSQL 5.5,我得到:

Error Code: 1292
Truncated incorrect DOUBLE value: 'C'


在下面使用SQL:

INSERT INTO table.t2 SELECT Something FROM table.t3
WHERE SUBSTRING_INDEX(Something,":",-1) NOT IN ("C","E")


“内容”列中的数据可能是这样的:

2131:2134
2132:2134:C
2133:2134:C
2134:2134:E
2135:2134:E
2136:2134
2137:2134
2138:2134
2139:2134


我知道我可以删除严格模式,但是想解决这个问题。这是我的第一次
尝试解决此问题时使用“ cast”。...-1,给出整数或字符串

最佳答案

where子句中存在问题。表达式'C' or 'E'是一个布尔表达式,被视为整数。因此,有关将值转换为数字的错误。

尝试使用not in代替:

WHERE SUBSTRING_INDEX(Something, ':', -1) NOT IN ('C', 'E')

10-07 12:01