参考我的previous question。
我在我的order by子句中附加了M_id,使其成为唯一的排序。
我创建了一个sqlfiddle:http://sqlfiddle.com/#!2/8f2340/3
现在我面临着DESC
订购的问题。
以下查询给出预期结果。
SELECT `M_ID`, `CON_FRST_NM` FROM `sample_table` order by `CON_FRST_NM` LIMIT 0,60
SELECT `M_ID`, `CON_FRST_NM` FROM `sample_table` order by `CON_FRST_NM`,`M_ID` LIMIT 0,60
SELECT `M_ID`, `CON_FRST_NM` FROM `sample_table` order by `CON_FRST_NM`,`M_ID` ASC LIMIT 0,60
SELECT `M_ID`, `CON_FRST_NM` FROM `sample_table` order by `CON_FRST_NM` DESC LIMIT 0,60
以下查询未给出预期结果。
SELECT `M_ID`, `CON_FRST_NM` FROM `sample_table` order by `CON_FRST_NM`,`M_ID` DESC LIMIT 0,60
请帮帮我。
感谢。
答案 0 :(得分:1)
据推测,您希望desc
中第一个键上的order by
:
SELECT `M_ID`, `CON_FRST_NM`
FROM `sample_table`
ORDER BY `CON_FRST_NM` DESC, `M_ID`
LIMIT 0, 60;
答案 1 :(得分:1)
您可以在不同的方向上对不同的列进行排序。例如 -
SELECT `M_ID`, `CON_FRST_NM`
FROM `sample_table`
ORDER BY `CON_FRST_NM` DESC, `M_ID` ASC
LIMIT 0, 60;
或
SELECT `M_ID`, `CON_FRST_NM`
FROM `sample_table`
ORDER BY `CON_FRST_NM` DESC, `M_ID` DESC
LIMIT 0, 60;
如果你没有提到方向,ASC是默认的。所以,在你的查询中
SELECT `M_ID`, `CON_FRST_NM`
FROM `sample_table`
ORDER BY `CON_FRST_NM`, `M_ID` DESC
LIMIT 0, 60;
结果将首先按CON_FRST_NM
按升序排序,然后按M_ID
降序排序。