MySQL在子句中使用Strict Mode和subindex

时间:2015-03-14 21:17:18

标签: mysql sql strict

在严格模式下使用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") 

数据' Something'专栏可能是这样的:

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

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

1 个答案:

答案 0 :(得分:1)

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

请尝试使用not in

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