如何对要显示的新数据进行排序?

时间:2015-08-01 05:38:34

标签: mysql sql-order-by

我是SQL新手。我有一个名为Categories的表,有3列:

id int(25)
category varchar(25)
subcategory varchar(25)

我想在“住宿”类别中添加一个新的子类别“房地产中介”。当我这样做时,新的子类别出现在我的表格底部:

[Screenshot 1

我的所有数据都有增加的ID(1,2,3,4),因此当我添加新数据时,它会采用新的ID顺序(例如:157)。如果我理解正确,则按ID进行排序。

问题是现在新的子类别出现在我的网站下拉菜单中,但它不是按字母顺序排列的。它出现在类别列表的末尾:

[Screenshot 2

我一直在我的SQL for Beginners书中搜索,在谷歌和Stack Exchange中,但我没有找到我的问题的帮助。

如果有人知道如何解决这个问题,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

好的,那你为什么不使用ORDER BY条款呢?如您所说,默认情况下,SELECT语句将按ID返回我们的数据排序,因此您需要指定您想要自己的订单。

SELECT id, category, subcategory
FROM Category
ORDER BY subcategory ASC

ASC表示上升顺序[默认行为],因此它将从A-Z返回。您可以指定引用后代顺序的DESC,它将从Z-A返回。

P.S。:我看到你在同一张表中有你的类别和子类别,他们有一对多的关系,你不应该规范化吗?当您在该表中的数据变大时,它将帮助您。 Normalization of Database