SQL - 如何在一个查询中对不同的列进行排序

时间:2017-02-13 13:05:33

标签: sql sorting sql-order-by

我尝试按不同的列排序我的记录,而不只是一个。我可以使用ORDER BY来订购我的记录,但如果我想在表格中按顺序排序不同的列,那该怎么办?

例如,我有一个包含AGEMONEYNAME列的表格。

  • 当我点击年龄时,我想SELECT * FROM table ORDER BY age DESC/ASC

  • 当我点击MONEY时,我想SELECT * FROM table ORDER BY money DESC/ASC

  • 最后,如果我想按NAME订购,我想SELECT * FROM table ORDER BY name DESC/ASC

结果应与此类似:

enter image description here

我找了CASE,但我找不到我需要的东西,但我认为我必须使用类似switch语句的东西。这是否存在于SQL中?我也可以用PHP做到这一点,但我无法理解。

谢谢!

1 个答案:

答案 0 :(得分:3)

您有两个基本选项:您可以在数据库中订购,也可以在前端订购。如果要分页数据,则需要在数据库中执行此操作,但如果只是几行,则可以执行此操作。请记住,前端无法对您未从数据库中提取的行进行排序

要在前端排序,请参阅您正在使用的编程框架的文档。

要在后端进行排序,每次需要不同的排序时,需要发送新的数据库查询。这是有道理的,因为您可能没有检索到要显示的所有行。因此,从您的问题中您了解SQL,因此您只需要在每次单击时发送它。再次,请参阅您正在使用的编程框架的文档,以帮助实现这一目标。