我有一个数据库,当输入项目时,它们会被赋予诸如“书籍”,“dvds”,“海报”,“配饰”,“服装”等部分。因此每个项目都有一个部分被添加到它
这是我用来查找唯一部分的SQL查询,以便我们可以使用它们按部分组织项目。
SELECT DISTINCT section FROM merch
这给了我正确的结果,将独特的部分放入数组中。现在,我希望首先列出两个部分。因此,我总是首先想要“海报”和“书籍”,然后展示其他类别。
有没有办法调整上面的查询,以便首先显示这两个部分,然后显示其余的唯一类别?
答案 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'))