这是一个示例表:
name | cat
----------
hugo | sal
bob | mgr
mike | dev
jeff | mgr
john | dev
Run Code Online (Sandbox Code Playgroud)
这两个name和cat是VARCHAR。
cat 反映了这些名称的类别,但我喜欢为它们分配优先级,然后通过查询将它们全部列出,按此优先级排序。
有哪些可能的方法?我可以提取cat到第二个表中,构建一个外键等。但鉴于我的应用程序非常简单并且结构可能是不可更改的:我必须先列出mgr名称,然后是dev名称,然后是sal名称?
小智 20
假设你不能改变你的结构,你可以在你的 ORDER BY 中使用 CASE 语句:
ORDER BY case cat when 'mgr' then 1 when 'dev' then 2 else 3
Run Code Online (Sandbox Code Playgroud)
但是,如果您可以更改结构,则可以创建一个Category包含类别代码和排名的表格,将您的示例表格加入该Category表格并按此排名排序。
| 归档时间: |
|
| 查看次数: |
25647 次 |
| 最近记录: |