我有这个疑问在我的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