作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在下面有一个按 'ProgramName'
排序的查询,它使用 lp.name
进行排序。最高值是 'Science - IN'
,然后是 'Science - FL'
,但 'Science - FL'
不应高于其他?我需要做一些特别的事情吗?
SELECT
lp.name AS 'program_name'
FROM customer_order co
JOIN customer c on co.customer_id = c.id
JOIN license_program lp ON co.license_program_id = lp.id
ORDER BY
CASE lower(sort_direction) WHEN 'asc' THEN
CASE lower(sort_order)
WHEN 'programname' THEN lower(lp.name)
ELSE (entry_date)
END
END ASC,
CASE lower(sort_direction) WHEN 'desc' THEN
CASE lower(sort_order)
WHEN 'programname' THEN lower(lp.name)
ELSE (entry_date)
END
END DESC
LIMIT start_page, page_size;
最佳答案
正如波西米亚人所说,你不能像这样动态排序。目前编写的,您基本上是在告诉数据库先按升序排序,然后再添加次要降序排序。您需要将动态排序逻辑编码到查询或表中,并在排序依据中引用它。
关于MySQL Order By 不使用列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10592224/
我是一名优秀的程序员,十分优秀!