如何忽略mysql中的前导零?

时间:2013-08-28 07:46:31

标签: php mysql

使用查询时:

select c_name from country where c_code_numeric='004';

它会返回正确的结果。

但是有了这个:

select c_name from country where c_code_numeric='4';

返回空结果

我的问题是

  • 为什么会这样?

  • 如何避免这种情况?

c_code_numeric是VARChar。

对于004或4的两种情况,这个都适合我。

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

3 个答案:

答案 0 :(得分:2)

如果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

答案 1 :(得分:0)

你可以使用mysql强制转换函数来显式cast

select c_name from country where CAST(c_code_numeric AS UNSIGNED) = 4

答案 2 :(得分:0)

您可以使用LPAD

添加前导零
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