Mysql 为什么sql查询不能正常工作
我在mysql查询中面临很多问题。 我正在为order编写一个查询,它向我显示结果,但顺序不正确。我的桌子是空的Mysql 为什么sql查询不能正常工作,mysql,Mysql,我在mysql查询中面临很多问题。 我正在为order编写一个查询,它向我显示结果,但顺序不正确。我的桌子是空的 +----+--------+--------+ | ID | NAME | SALARY | +----+--------+--------+ | 1 | hari | 2000 | | 2 | haria | 2000 | | 3 | ramesh | 2000 | | 4 | rajesh | 5000 | | 5 | john | 21
+----+--------+--------+
| 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的订单不起作用。
提前感谢。最可能的原因是
SALARY
字段的类型为varchar
,而不是int
。
如果薪资类型为varchar
,则显示排序。
如果您将工资设置为
int
,您将获得所需的排序。这是因为您有文本
(或varchar
)输入字段类型。您可以看到顺序是由第一个字符决定的,并且是有效的
将salary
字段类型设置为int,并根据需要工作:
ALTER TABLE salary MODIFY salary INT NOT NULL;
薪资字段类型是?文本,整数?谢谢。它正在工作。非常感谢你。你节省了我的时间。@user7635555很高兴我帮了忙