本文介绍了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列上的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-26 08:06