SQL - 如何在一个查询中按不同的列进行排序
SQL - How to ORDER BY different columns in one query
我正在尝试按不同的列(而不是一列)对我的记录进行排序。我可以使用 ORDER BY 对我的记录进行排序,但是如果我想对 table 中的某些数据进行排序并按不同的列对它们进行排序怎么办?
例如,我有一个包含 AGE
、MONEY
和 NAME
列的 table。
当我点击AGE时,我想做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 做到这一点,但我不明白怎么做。
谢谢!
您有两个基本选择:您可以在数据库中订购,也可以在前端订购。如果你正在分页你的数据,你想在数据库中进行,但如果它只有几行,你可以在任何一个地方进行。请记住,前端无法对您未从数据库中提取的行进行排序。
要在前端排序,请查阅您使用的编程框架的文档。
要在 back-end 中排序,每次需要不同的排序时都需要发送新的数据库查询。这是有道理的,因为您可能没有检索到要显示的所有行。所以从你的问题你理解 SQL,所以你只需要在每次点击时发送它。同样,请查阅您正在使用的编程框架的文档以帮助实现这一目标。
我正在尝试按不同的列(而不是一列)对我的记录进行排序。我可以使用 ORDER BY 对我的记录进行排序,但是如果我想对 table 中的某些数据进行排序并按不同的列对它们进行排序怎么办?
例如,我有一个包含 AGE
、MONEY
和 NAME
列的 table。
当我点击AGE时,我想做
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 做到这一点,但我不明白怎么做。
谢谢!
您有两个基本选择:您可以在数据库中订购,也可以在前端订购。如果你正在分页你的数据,你想在数据库中进行,但如果它只有几行,你可以在任何一个地方进行。请记住,前端无法对您未从数据库中提取的行进行排序。
要在前端排序,请查阅您使用的编程框架的文档。
要在 back-end 中排序,每次需要不同的排序时都需要发送新的数据库查询。这是有道理的,因为您可能没有检索到要显示的所有行。所以从你的问题你理解 SQL,所以你只需要在每次点击时发送它。同样,请查阅您正在使用的编程框架的文档以帮助实现这一目标。