我需要订购一个表,但我不知道用户将如何选择列。
示例:
select *
from table
order by field1, field2, field3
但用户可以更改字段顺序:field3、field1、field2
我就是这么想的:
select *
from table
order by
some_fuction (
field1, priority
field2, priority
field3, priority
)
在那里我可以设置每个字段的优先级。有可能吗?
谢谢,安德森
2条答案
按热度按时间u0njafvf1#
使用
if
、case
可以得到解决方案。你可以在以下网站上查看各种解决方案:
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
而且可能会更..。
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