2013-02-23 121 views
0

我在我使用的名为last_count的数据库中有一列填充了int。该数字具有很多0的基本格式,然后是实际的数字(例如000001489)。我需要摆脱数字之前的零,然后将它们显示在查询生成的表中'select last_count,query,job_id from twitterinblack46.job where job_id in('。$ job_id_all。')order by last_count desc;'如何删除前导零?

我正在寻找preg_replace,但它也删除了其他零(例如,如果数字是00001480,它回声148而不是1480)。我正在使用PHP。

+0

出于好奇...为什么last_count被零填充? – 2013-02-23 01:23:25

+0

我不确定,我只能访问数据库。我没有创建它。 – Pstivala7 2013-02-24 23:08:27

回答

1

做的最简单的事情是投值为整数:

select cast(col as int) 

这将显示该号码没有前导零。

如果你需要的值作为一个字符串,你可以将它转换回为VARCHAR:

select cast(cast col as int) as varchar(255)) 
+0

有没有办法通过PHP来做到这一点,而不是另一个SQL查询,因为我试图显示的查询已经显示了另外三列。 – Pstivala7 2013-02-23 00:31:11

+0

@ Pstivala7。 。 。只需将查询中的列替换为表达式'cast(var as int)as varchar(255))as 'where''是特定的列名称。 – 2013-02-23 00:35:05

1

只要改变类型在PHP为int

// Your sql stuff 
$stmt->bind_result($last_count); 
while ($stmt->fetch()) { 
    echo "<tr>"; 
    echo "<td>".intval($last_count)."</td>"; // Or use (int)$last_count 
    echo "</tr>"; 
} 

看到http://php.net/manual/en/function.intval.php

1

这个怎么样?

preg_match("/[^0].*/",$number, $matches); 
echo $matches[0]; 
+0

几乎所有情况下都能正确运行,但是如果给定的数字是0或负数,它将分别返回一个空字符串和负数的绝对值 – 2013-02-23 01:21:59