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