MySQL Query用于提取项目,但始终在顶部显示某个项目

时间:2011-07-02 12:48:09

标签: php mysql

我有一个数据库,当输入项目时,它们会被赋予诸如“书籍”,“dvds”,“海报”,“配饰”,“服装”等部分。因此每个项目都有一个部分被添加到它

这是我用来查找唯一部分的SQL查询,以便我们可以使用它们按部分组织项目。

SELECT DISTINCT section FROM merch

这给了我正确的结果,将独特的部分放入数组中。现在,我希望首先列出两个部分。因此,我总是首先想要“海报”和“书籍”,然后展示其他类别。

有没有办法调整上面的查询,以便首先显示这两个部分,然后显示其余的唯一类别?

4 个答案:

答案 0 :(得分:4)

SELECT DISTINCT section FROM merch 
    ORDER BY FIELD(section, 'books', 'posters') DESC;

答案 1 :(得分:2)

我在我的应用程序中执行此操作时使用ORDER BY FIELD()函数,请参阅下面的

SELECT * FROM merch ORDER BY FIELD(section,'posters','books','dvds','accessories')

答案 2 :(得分:0)

这应该有用......

SELECT DISTINCT `section`
           FROM `merch`
       ORDER BY FIELD(`name`, 'posters', 'books');

答案 3 :(得分:0)

你可以通过几种方式做到这一点。

如果章节中有动态数据,最简单的可能是像

这样的联合语句
SELECT * FROM section WHERE id = 'books'
    UNION
SELECT * FROM section WHERE id = 'posters'
    UNION
SELECT * FROM section WHERE id IN (SELECT DISTINCT section_id 
                                      FROM merch 
                                      AND section_id not in ('books','posters'))