gpt4 book ai didi

php - 在 php 中使用 "ORDER BY"查询未提供准确的结果

转载 作者:行者123 更新时间:2023-12-01 00:38:28 25 4
gpt4 key购买 nike

我的 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 存储在 char 或 varchar 列中。由于它看起来是整数数据,您应该将其转换为 int。

ALTER TABLE tbl_buttons MODIFY btn_id INT

一个较小的解决方案是按如下方式修改您的查询

SELECT * FROM tbl_buttons ORDER BY btn_id+0

这将导致 btn_id 字段自动转换为 int。这是劣质的原因是因为服务器有额外的工作并且查询计划器可能无法使用 btn_id 上的索引(如果存在的话)。整数数据应始终保存在 INT 字段中。

关于php - 在 php 中使用 "ORDER BY"查询未提供准确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40966925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com