gpt4 book ai didi

MySQL Order By 不使用列

转载 作者:行者123 更新时间:2023-11-30 23:31:06 25 4
gpt4 key购买 nike

我在下面有一个按 '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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com