在int字段mysql中搜索字符类型给出错误的结果

时间:2016-09-26 11:01:03

标签: mysql

当我在int字段中使用字符进行搜索时,它会给出int字段的值为零的结果。

select * from table where b = "test"

列b是int类型。获得的结果是b的值为零的行。 我怎么能避免这个?

1 个答案:

答案 0 :(得分:1)

MySQL有一个小问题,CAST('some text' AS INT)产生零。 CAST('123some text' AS INT)收益123也会发生。

执行WHERE integer_valued_column = 'text'时,'text'会隐式转换为整数值。这就是导致你观察到的奇怪行为的原因。

你如何避免它? @Drew是对的。不要这样做。