我想排序出现在我的页面的列值,起初它会寻找活动,然后等待,然后出售,然后即将到来。但它显示的其他情况。这里是我的代码MySQL Field()排序
SELECT
*
FROM custom
ORDER BY
FIELD(status,'Active','Pending','Sold','Upcoming') DESC
我想排序出现在我的页面的列值,起初它会寻找活动,然后等待,然后出售,然后即将到来。但它显示的其他情况。这里是我的代码MySQL Field()排序
SELECT
*
FROM custom
ORDER BY
FIELD(status,'Active','Pending','Sold','Upcoming') DESC
虽然这是事实,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;
更具前景的解决方案将是一个ID,名称和序列的状态表。您在查询中加入该表,然后按顺序排序。然后,如果您稍后决定以不同顺序请求数据,则可以更改序列,并且稍后可以轻松地添加更多状态类型,而无需触及查询。另外它可以让你存储id而不是字符串,让你在相同的空间存储更多的数据。
向我们展示一个示例数据集和您想要的输出。 – Kermit
其显示在第一时间出售然后活跃然后待定然后即将到来 –
好的,不要给我们示例数据集。 – Kermit