Pra*_*ngh 7 mysql sql-order-by
我有这样一张桌子:
id products_name sort
1 abc 0
2 xyz 1
3 pqr 2
4 qwe 0
Run Code Online (Sandbox Code Playgroud)
我想通过sort列和升序对记录进行排序,但我不希望结果集中顶部的行为0.
列0中的sort行应位于结果集的底部,其余行应使用sort列按升序排序.
我该怎么做呢?
Rom*_*ain 11
你可以尝试类似的东西:
ORDER BY IF(SORT=0, 999999999, SORT)
Run Code Online (Sandbox Code Playgroud)
您可以使用以下ORDER BY IF声明:
SELECT *
FROM table
ORDER BY IF(SORT = 0, 999999999, SORT)
Run Code Online (Sandbox Code Playgroud)
或者您可以使用该UNION ALL语句来实现此目的:
(SELECT * FROM table WHERE sort > 0 ORDER BY sort)
UNION ALL
(SELECT * FROM table WHERE sort = 0)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3799 次 |
| 最近记录: |