去年

问题描述:

显示类别ASC顺序,但“OTHERS”的名单,我在显示ASC订单类别的清单。“OTHERS”也是品类之一。我需要在ASC ORDER中显示所有类别,最后显示“OTHERS”。去年

这是通过使用PHP和MYSQL完成。

表结构

故事名:类别

id categoryname 

1 APPLE 

2 BANANA 

3 Strawberry 

4 Other 

5 grape 

例如:以上是表结构。从上面的表格中我需要显示ASC订单中的所有类别,最后需要显示“OTHER”。 所以输出应该是 完全如下。

id categoryname 

1 APPLE 

2 BANANA 

3 grape 

4 Strawberry 

5 Other 

你可以尝试像

SELECT * 
FROM Categories 
ORDER BY CASE 
       WHEN Categorie = 'OTHERS' THEN 2 
       ELSE 1 
      END, 
      Categorie 
+0

这是我正好需要..感谢很多astander – Fero 2010-02-11 07:53:54

+0

我相信,这将只是那种“别人”到列表的末尾,而不是排序类别。 – Duncan 2010-02-11 08:09:49

+0

order by子句有2个部分,所以试着运行一下,看看它会按类别由1/2 ID进行排序递增,然后,将 – 2010-02-11 08:14:37

SELECT * FROM categories ORDER BY Column1 ASC, Column2 ASC, Column3 DESC 
+0

请查看问题又来seyfo。我以不同的方式解释了它 – Fero 2010-02-11 07:46:45

+0

Hımmok。我很抱歉:( – s3yfullah 2010-02-11 08:13:42

+0

没有必要不好意思Seyfo ...仅供参考。 – Fero 2010-02-11 09:08:14

SELECT * 
FROM categories 
ORDER BY categories LIKE 'others' ASC, categories ASC 
+0

我认为这是一个更好的答案,除非在问题'其他'使用。它比使用CASE语句更简单明了。 – FLY 2011-04-29 10:25:46