如何使用MySql(ID 1-20)按ID排序?

时间:2011-11-03 22:19:42

标签: php mysql sql-order-by

如果我通过id命令我的sql数据并且ids是1 - 20我会得到这样的结果:

id ; val
1 ; 1
10 ; 1
11 ; 1
12 ; 1
13 ; 1
2 ; 1
3 ; 1
4 ; 1

但是10大于4 ...我该怎样做才能使它正确秩序?

SELECT ID, SUM((Amount)) AS AmountSum
FROM `testdata`
GROUP BY ID
ORDER BY ID

id = int

4 个答案:

答案 0 :(得分:0)

ORDER BY id ASC; - 提供您的ID是数字数据类型

答案 1 :(得分:0)

我的猜测是ID的数据类型是某种字符串。如果您将其更改为Int,您应该看到您期望的正确(数字)排序。

答案 2 :(得分:0)

将ID字段转换为整数以获得数字排序:

SELECT ID, SUM(Amount) AS AmountSum
FROM testdata
GROUP BY ID
ORDER BY CAST(ID AS UNSIGNED INTEGER)

此查询效率低下,因为它无法在id字段上使用索引。要提高效率,您应该考虑将数据库中的列更改为数字类型而不是字符类型。

答案 3 :(得分:-1)

您的id字段不是int而是varchar。将其更改为int。