我可以在mysql查询中使用order by,但不能使用列名,而是使用“第一列”或类似的列索引或类型顺序吗?
像
Select * from `users` order by 1
答案 0 :(得分:1)
是的,MySQL支持通过其位置引用ORDER BY
中的列:
可以使用列名,列别名或列位置在
开头ORDER BY
和GROUP BY
子句中引用为输出选择的列。列位置是整数,以1 [...]
ORDER BY
的语法描述也反映了这一点:
[ORDER BY {col_name | expr | position} [ASC | DESC], ...]
然而:
不推荐使用列位置,因为语法已从SQL标准中删除。
答案 1 :(得分:0)
是的,你可以。例如,如果你使用1000而不是1,你会得到类似这样的错误:
ERROR 1054 (42S22): Unknown column '1000' in 'order clause'
答案 2 :(得分:0)
是的,有可能,请参阅mysql reference
[ORDER BY {col_name | expr |位置}
mysql> select * from kcreate order by 1;
+-------+-------+
| k1 | k2 |
+-------+-------+
| 1 | 99999 |
| 12117 | 10294 |
+-------+-------+
2 rows in set (0.00 sec)
mysql> select * from kcreate order by 2;
+-------+-------+
| k1 | k2 |
+-------+-------+
| 12117 | 10294 |
| 1 | 99999 |
+-------+-------+
2 rows in set (0.00 sec)