我想排序列值出现在我的页面中,首先它会查找活动,然后挂起,然后卖出,然后即将推出.但它显示不然.这是我的代码
SELECT
*
FROM custom
ORDER BY
FIELD(status,'Active','Pending','Sold','Upcoming') DESC
Run Code Online (Sandbox Code Playgroud)
虽然ORDER BY Status理论上确实应该有效,但鉴于目前您所需的排序恰好按字母顺序排列,并且暂时忽略了"它不起作用"意味着什么,更可扩展的方式是使用CASE表达式.
ORDER BY CASE Status
WHEN 'Active' THEN 0
WHEN 'Pending' THEN 1
WHEN 'Sold' THEN 2
WHEN 'Upcoming' THEN 3
END DESC;
Run Code Online (Sandbox Code Playgroud)
更具前瞻性的解决方案是具有ID,名称和序列的状态表.您在查询中加入该表,并按顺序排序.然后,如果您稍后决定以不同的顺序请求数据,则可以更改序列,并且稍后可以轻松添加更多状态类型,而无需触摸查询.此外,它允许您存储id而不是字符串,让您在相同数量的空间中存储更多数据.
| 归档时间: |
|
| 查看次数: |
53 次 |
| 最近记录: |