mysql未使用Order-by-use-DESC进行排序

mysql未使用Order-by-use-DESC进行排序,mysql,sql,select,sql-order-by,Mysql,Sql,Select,Sql Order By,在ubuntu上使用mysql 以下命令不是按降序排列的 mysql> select spo_id, count(spo_id) as "maxCount" from order_details GROUP BY spo_id ORDER BY "maxCount" DESC; +--------+----------+ | spo_id | maxCount | +--------+----------+ | 1 | 1 | | 2 | 3

在ubuntu上使用mysql

以下命令不是按降序排列的

mysql> select spo_id, count(spo_id) as "maxCount" from order_details GROUP BY spo_id ORDER BY "maxCount" DESC;
+--------+----------+
| spo_id | maxCount |
+--------+----------+
|      1 |        1 |
|      2 |        3 |
|      3 |        1 |
+--------+----------+
3 rows in set (0.00 sec)

MySQL允许使用双引号的字符串文本。因此,当您按“maxCount”排序时,实际上是按字符串文字排序,这是毫无意义的。删除引号,它应该可以正常工作:

MariaDB [db]> select spo_id, count(spo_id) as maxCount from order_details GROUP BY spo_id ORDER BY maxCount DESC;
+--------+----------+
| spo_id | maxCount |
+--------+----------+
|      2 |        3 |
|      3 |        1 |
|      1 |        1 |
+--------+----------+
3 rows in set (0.00 sec)

您是按常量/字符串“maxCount”排序的,这类似于说
orderby1desc
,这是毫无意义的。@jnevil:
orderby1desc
对于大多数DBMS来说是可以接受的(不确定MySQL)。它表示按选择列表中的第一列排序。在这种情况下,
orderby2desc
将实现海报的意图。@KenWhite-Oh-geez。是的,我的错。这是一个坏例子<代码>按“somestring”描述排序会更好。