这个问题在这里已经有答案了:
如何在mysql函数中从字母数字文本中删除前导零(8个答案)两年前关门了。mysql where-in同时也在寻找任何值在0之前的值。我想做一个
select * from table where acol IN (1,2,3,4,5);
我还想归还所有 001 , 0002 , 03 , 00004 等。感谢您的帮助!
001
0002
03
00004
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);
1条答案
按热度按时间cig3rfwq1#
根据上述问题中所述的与具有前导零的数值进行比较的描述,如果列的数据类型定义为整数,然后,具有前导零的值将存储到不带前导零的列中,因此作为sql select语句的一部分,equality表达式或in表达式where子句中的值的相等性将计算为true。
否则,如果列的数据类型被定义为varchar,那么具有前导零的值将按照其原始格式存储,并将前导零放入列中,并且要与具有前导零的值进行比较,您需要使用like operator into where子句作为sql select语句的一部分。或者,可以使用mysql cast函数将varchar列值强制转换为integer数据类型,在执行与作为sql select语句一部分的where子句中的类型强制转换值的比较时,值的相等性将计算为true。