我尝试按不同的列排序我的记录,而不只是一个。我可以使用ORDER BY来订购我的记录,但如果我想在表格中按顺序排序不同的列,那该怎么办?
例如,我有一个包含AGE
,MONEY
和NAME
列的表格。
当我点击年龄时,我想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
结果应与此类似:
我找了CASE,但我找不到我需要的东西,但我认为我必须使用类似switch语句的东西。这是否存在于SQL中?我也可以用PHP做到这一点,但我无法理解。
谢谢!
答案 0 :(得分:3)
您有两个基本选项:您可以在数据库中订购,也可以在前端订购。如果要分页数据,则需要在数据库中执行此操作,但如果只是几行,则可以执行此操作。请记住,前端无法对您未从数据库中提取的行进行排序。
要在前端排序,请参阅您正在使用的编程框架的文档。
要在后端进行排序,每次需要不同的排序时,需要发送新的数据库查询。这是有道理的,因为您可能没有检索到要显示的所有行。因此,从您的问题中您了解SQL,因此您只需要在每次单击时发送它。再次,请参阅您正在使用的编程框架的文档,以帮助实现这一目标。