in同时也在寻找任何值在0之前的值

8fsztsew  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(368)

这个问题在这里已经有答案了

如何在mysql函数中从字母数字文本中删除前导零(8个答案)
两年前关门了。
mysql where-in同时也在寻找任何值在0之前的值。
我想做一个

select * 
from table 
where acol IN (1,2,3,4,5);

我还想归还所有 001 , 0002 , 03 , 00004 等。
感谢您的帮助!

cig3rfwq

cig3rfwq1#

根据上述问题中所述的与具有前导零的数值进行比较的描述,如果列的数据类型定义为整数,然后,具有前导零的值将存储到不带前导零的列中,因此作为sql select语句的一部分,equality表达式或in表达式where子句中的值的相等性将计算为true。
否则,如果列的数据类型被定义为varchar,那么具有前导零的值将按照其原始格式存储,并将前导零放入列中,并且要与具有前导零的值进行比较,您需要使用like operator into where子句作为sql select语句的一部分。或者,可以使用mysql cast函数将varchar列值强制转换为integer数据类型,在执行与作为sql select语句一部分的where子句中的类型强制转换值的比较时,值的相等性将计算为true。

select *
    from table
where CAST(acol as unsigned) IN (1, 2, 3, 4, 5);

相关问题