本文介绍了MySQL意外结果:“IN” - 句子(number,'string')在varchar列上的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在MySQL中,为什么下面的查询返回'----'
,'0'
code>'000','AK3462'
,'AL11111'
'C131521'
,'TEST'
等等。
In MySQL, why does the following query return '----'
, '0'
, '000'
, 'AK3462'
, 'AL11111'
, 'C131521'
, 'TEST'
, etc.?
select varCharColumn from myTable where varCharColumn in (-1, '');
当我这样做时,我得不到这些结果:
I get none of these results when I do:
select varCharColumn from myTable where varCharColumn in (-1);
select varCharColumn from myTable where varCharColumn in ('');
注意:我使用MySQL版本5.0.45-log(显示变量如%version%;
)
Note: I'm using MySQL version 5.0.45-log (show variables like "%version%";
)
注意2:我也在数字列上尝试过,但我没有得到意想不到的结果。
Note 2: I tried this on a number column as well, but I do not get unexpected results there.
推荐答案
如:
SELECT val1 FROM tbl1 WHERE val1 IN (1,2,'a');
Instead, write it like this:
SELECT val1 FROM tbl1 WHERE val1 IN ('1','2','a');
这篇关于MySQL意外结果:“IN” - 句子(number,'string')在varchar列上的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!