2013-02-23 132 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