Php 如何忽略mysql中的前导零?

Php 如何忽略mysql中的前导零?,php,mysql,Php,Mysql,使用查询时: select c_name from country where c_code_numeric='004'; 它返回正确的结果 但有了这一点: select c_name from country where c_code_numeric='4'; 返回一个空结果 我的问题是 为什么会这样 如何避免这种情况 c\u code\u numeric是VARChar 在004或4种情况下,这一个对我来说都很好: select c_name from country where c

使用查询时:

select c_name from country where c_code_numeric='004';
它返回正确的结果

但有了这一点:

select c_name from country where c_code_numeric='4';
返回一个空结果

我的问题是

  • 为什么会这样

  • 如何避免这种情况

c\u code\u numeric
是VARChar

在004或4种情况下,这一个对我来说都很好:

select c_name from country where c_code_numeric +0='4';

如果c_code_numeric是包含数字的VARCHAR,则可以使用以下查询:

SELECT c_name
FROM country
WHERE c_code_numeric=4
这会将c_code_numeric转换为数字,或者您也可以尝试以下操作:

SELECT c_name
FROM country
WHERE c_code_numeric+0=4

您可以使用mysql cast函数来显式


您可以使用
LPAD

SELECT c_name FROM country WHERE c_code_numeric = LPAD('4', 3, '0')
用法 示例:
这对mysql来说是什么样的?c_code_numeric是一个varchar,但使用u应答的查询返回空结果工作正常您以前的ans::)从c_code_numeric+0='4'所在的国家选择c_name,您可以为mycase键入完整的查询吗?@aqkhan
从CAST所在的国家选择c_name(c_code_numeric为UNSIGNED)=4
为什么不忽略零并将代码存储为INT?
SELECT c_name FROM country WHERE c_code_numeric = LPAD('4', 3, '0')
LPAD(value, lenght, start_with)
LPAD('4', 3, '0')   // 004
LPAD('14', 3, '0')  // 014
LPAD('114', 3, '0') // 114