我有這個疑問在我的PHP查詢與「ORDER BY」在PHP不能提供準確的結果
<?php
$sql = "SELECT * FROM tbl_buttons ORDER BY btn_id" ;
foreach ($PDO->query($sql) as $row)
{
echo '<tr>
<td>$row['btn_id']</td>
<td>$row['description']</td>
</tr>';
}
?>
輸出是這樣的:
Button ID | Description
1 | Assessment
10 | Registration
11 | Payroll
2 | Loan
3 | Sample
它按第一個數字,而不是的整數。這就是爲什麼所有具有相同數字的值首先出現。通過它的第一個數字不準確地排序。
它看起來像你的'btn_id'列是一個字符類型。如果還不算太晚,我建議將它改爲數字類型(例如'INT')。如果你不能改變它,那麼'ORDER BY CAST(btn_id AS UNSIGNED)'。 –
它已經是一個整數,但仍然有錯誤。 –
如果它是一個int,你將不會得到那個排序順序。如果它不是一個int,而是像我的答案中那樣將表建議爲ORDER BY btn_id + 0。唯一可以達成的結論是你沒有分享你的實際代碼。 – e4c5