use*_*755 2 mysql sql select sql-order-by
mysql如何按用户定义的顺序排序/排序
说一张桌子
---------+----------
name | category
---------+----------
apple | 0
orange | 0
book | 1
notebook | 1
textboo | 1
phone | 2
Run Code Online (Sandbox Code Playgroud)
如何按以下类别顺序排序,即category = 1,category = 0,category = 2以获取视图
---------+----------
name | category
---------+----------
book | 1
notebook | 1
textbook | 1
apple | 0
orange | 0
phone | 2
Run Code Online (Sandbox Code Playgroud)
我们如何为此编写一个sql?
更好的是,如果语句可以根据每个类别的项目数来识别和排序desc.
你想这样做:
SELECT Name, Category
FROM MyTable
ORDER BY
Case category
when 1 then 1
when 0 then 2
else 3
end,
Name
Run Code Online (Sandbox Code Playgroud)
更新
在第一个答案中,订单按类别确定.按类别中的项目数排序时,您希望这样做:
select name, Category,
(select count(*) from MyTable mt2 where mt2.Category = mt1.category) CatCount
from MyTable mt1
order by 3 DESC, name
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6154 次 |
| 最近记录: |