我正在尝试按不同的列(而不仅仅是一列)对记录进行排序。我可以使用 ORDER BY 对记录进行排序,但是如果我想对表中的某些数据按不同列进行排序该怎么办?
例如,我有一个包含 AGE
、MONEY
和 NAME
列的表。
当我点击 AGE 时,我想要执行
SELECT * FROM table ORDER BYage DESC/ASC
当我点击
MONEY
时,我想要执行SELECT * FROM table ORDER BY Money DESC/ASC
最后,如果我想按
NAME
排序,我想做SELECT * FROM table ORDER BY name DESC/ASC
结果应该与此类似:
我寻找了 CASE 但没有找到我需要的东西,但我认为我必须使用类似于 switch 语句的东西。 SQL 中存在这个吗?我也可以用 PHP 做到这一点,但我不明白如何做。
谢谢!
最佳答案
您有两个基本选项:您可以在数据库中订购,也可以在前端订购。如果您要对数据进行分页,您希望在数据库中执行此操作,但如果只有几行,则可以在任一位置执行此操作。请记住,前端无法对您未从数据库中提取的行进行排序。
要在前端进行排序,请查阅您正在使用的编程框架的文档。
要在后端进行排序,每次需要不同的排序时,您都需要发送新的数据库查询。这是有道理的,因为您可能没有检索到要显示的所有行。所以从你的问题中你了解了 SQL,所以你只需要在每次点击时发送它。再次,请参阅您正在使用的编程框架的文档,以获取实现这一目标的帮助。
关于SQL - 如何在一个查询中对不同列进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42204767/