将选择与自定义列值相结合

时间:2018-05-17 06:00:32

标签: php mysql

status列中有以下值:slider - sidebar - below - oncheck - later

我希望得到所有项目的列表,但首先是status = slider,然后是sidebar,依此类推。

每个status组都应按date desc排序。

我尝试了UNION

$sql = "select * from posts where status = 'slider' union
        select * from posts where status = 'sidebar' union
        select * from posts where status = 'below' union
        select * from posts where status = 'oncheck' union
        select * from posts where status = 'later'
        order by date desc";

结果 - 项目混乱(首先below然后slider然后再below等)

任何帮助?

2 个答案:

答案 0 :(得分:2)

使用MySQL FIELD()函数:

SELECT *
FROM posts
ORDER BY FIELD(status, 'slider', 'sidebar', 'below', 'oncheck', 'later');

这将根据需要对行进行排序:)

答案 1 :(得分:1)

SELECT * FROM posts 
ORDER BY FIELD (status, 'slider', 'sidebar'),date desc;

请检查一下。