【发布时间】:2014-09-19 13:27:08
【问题描述】:
我正在处理一个返回大量选择的过程,我不想定义它的顺序。 我不想选择三个字段中的一个,如果它是升序或降序,如果三个选项都没有定义,它默认返回降序的第一个字段
这边
ORDER BY
CASE option1
WHEN 0 THEN
CASE option2
WHEN 0 THEN firstField DESC
WHEN 1 THEN firstField ASC
END
WHEN 1 THEN
CASE option2
WHEN 0 THEN secondField DESC
WHEN 1 THEN secondField ASC
END
WHEN 2 THEN
CASE option2
WHEN 0 THEN thirdField DESC
WHEN 1 THEN thirdField ASC
END
ELSE
firstField DESC
END
END;
当然,这不起作用...mysql在'DESC'和'ASC'两个词中出现错误,我怎样才能使它起作用??
【问题讨论】:
-
你可以使用动态查询来生成你想要的吗?因为您必须在每个 CASE 的 END 子句之后指定 DESC 或 ASC!
-
不知道,效果如何?
-
字段类型有哪些?
标签: mysql sql-order-by