我有一个包含2列'id'和'name'的表格。 id是常规自动增量索引,名称只是varchar。排序mysql结果。按col1排序,按col2排序
id name
1 john
2 mary
3 pop
4 mary
5 john
6 michael
7 john
8 will
我想这样
8 will
7 john
5 john
1 john
6 michael
4 mary
2 mary
3 pop
标识的搜索结果进行排序是降序,但所有重复的名称组合在一起。没关系如果ASC更容易实现。如有必要,我可以在PHP中取消结果。
Regular ORDER BY name,id DESC首先对所有名称进行排序,然后对id进行排序。这不是我想要的。我对字母顺序的名字不感兴趣。
我希望以DESC顺序编号,如果有重复名称,请将其分组。
p.s.我很抱歉这是一个重复的问题。
在你的结果中id是** not ** DESC –
在SQL'ORDER BY'中,通过逐一比较结果行来排序结果行。由于'5 john'在你想要的结果中的位置取决于'7 john'的位置,所以这将不起作用。我担心没有一个能够满足您的需求的关系构造。 –
@Alma Do Mundo:你说得对。 Id的字面不是按照DECS的顺序。但有一个全局的DECS命令(8,7,6,4,3)和一组本地DECS命令(7,5,1)(4,2) – CoR