MySQL按优先级排序列表

nbnkbykc  于 2022-09-18  发布在  Java
关注(0)|答案(2)|浏览(193)

我需要订购一个表,但我不知道用户将如何选择列。

示例:

select * 
from table 
order by field1, field2, field3

但用户可以更改字段顺序:field3、field1、field2

我就是这么想的:

select * 
from table
order by 
some_fuction (
field1, priority
field2, priority
field3, priority
)

在那里我可以设置每个字段的优先级。有可能吗?

谢谢,安德森

u0njafvf

u0njafvf1#

使用ifcase可以得到解决方案。
你可以在以下网站上查看各种解决方案:

1.“IF” statement in MYSQL ORDER BY?
1.MySQL order by multiple case statements
1.complex sql order by
1.MySQL : Conditional ORDER BY to only one column

而且可能会更..。

ohtdti5x

ohtdti5x2#

if the user is selecting order means... use the parameter to order filed

select * from table_name order by ${filed_name}

case makes SQL big

相关问题