我在mysql查询中遇到很多问题。 我正在编写一个查询订单,它显示的是结果,但没有按正确的顺序。我的桌子是
+----+--------+--------+
| ID | NAME | SALARY |
+----+--------+--------+
| 1 | hari | 2000 |
| 2 | haria | 2000 |
| 3 | ramesh | 2000 |
| 4 | rajesh | 5000 |
| 5 | john | 21000 |
| 6 | naag | 45000 |
| 7 | sheena | 22000 |
| 8 | anu | 34000 |
| 9 | aman | 15000 |
| 10 | salil | 9000 |
+----+--------+--------+
我想按关键字
按顺序获取所有薪水mysql> select salary from salary order by salary desc;
+--------+
| salary |
+--------+
| 9000 |
| 5000 |
| 45000 |
| 34000 |
| 22000 |
| 21000 |
| 2000 |
| 2000 |
| 2000 |
| 15000 |
+--------+
mysql> select salary from salary order by salary;
+--------+
| salary |
+--------+
| 15000 |
| 2000 |
| 2000 |
| 2000 |
| 21000 |
| 22000 |
| 34000 |
| 45000 |
| 5000 |
| 9000 |
+--------+
这些结果没有正确显示。为什么asc和desc的命令不起作用。 提前谢谢。
答案 0 :(得分:1)
最可能的原因是SALARY
字段的类型为varchar
,而不是int
。
显示的顺序是薪水是否为varchar
类型。
如果你的工资为int
,你就会得到所需的订单。
答案 1 :(得分:0)
那是因为您有text
(或varchar
)输入字段类型。您可以通过第一个字符查看订单并且该订单有效。
将salary
字段类型设置为int,并按您的意愿工作:
ALTER TABLE salary MODIFY salary INT NOT NULL;