MySQLWhere IN 同时还查找任何具有前面有任意数量的 0 的值的值

标签 mysql where-clause

MySQLWhere IN 同时还查找任何具有前面带有任意数量 0 的值的值。

我正在尝试做一个

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

我还想退回任何有 001 的东西, 0002 , 03 , 00004等等

感谢任何帮助!

最佳答案

根据上述问题中提到的与具有前导零的数值进行比较的描述,如果列的数据类型定义为整数,则具有前导零的值将存储到不带前导零的列中,因此值相等作为 SQL select 语句一部分的 into equals 表达式或 into IN 表达式 into where 子句将计算为 true。

否则,如果列的数据类型定义为 varchar ,则具有前导零的值将根据其原始格式存储,并将前导零存储到列中,并且要与具有前导零的值进行比较,您需要在 where 子句中使用 like 运算符作为 SQL select 语句的一部分。或者,可以使用 MYSQL CAST 函数将 varchar 列值转换为整数数据类型,并在与作为 SQL Select 语句一部分的 where 子句中的类型转换值进行比较时,值的相等性将评估为 true。

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

关于MySQLWhere IN 同时还查找任何具有前面有任意数量的 0 的值的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49759862/

相关文章:

mysql - 使用 between 和 multiple occurrences 的 SQL 出现问题

mysql - MySQL 对约 400.000 个条目的查询速度缓慢

MySQL UPDATE - 将列中的字段设置为 1,所有其他字段设置为 0,使用一个查询

MySQL 更新正在将其他行中的选定列设置为零

php - 将特殊字符隐藏为 html 数字/名称,然后再次隐藏为 php 中的特殊字符

MYSQL 转置查询复杂

mysql - 如果唯一值已经存在,如何更新数据?

php - 在mysql中多次加入一个表

mysql - 在临时表中使用 where 子句

PHP MYSQL 'AND' 子句对面