如果我通过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
答案 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。