gpt4 book ai didi

mysql - CASE WHEN 在 MySQL 中使用 ASC/DESC

转载 作者:行者123 更新时间:2023-11-30 21:41:24 28 4
gpt4 key购买 nike

我使用此查询来获取文章。如果 article sponsor status 为真,则它有优先显示在顶部。

SELECT article_id, article_name, article_image, article_url, 
article_feature_status, article_sponsor_status
FROM articles ORDER BY CASE WHEN article_sponsor_status = 'true' THEN 1 ELSE 2 END DESC

我得到了我想要的结果,但我也想得到从新到旧的 DESC 结果。使用此查询从顶部开始分析,但我想反转它。最后一个“DESC”没有像我预期的那样工作。我该怎么做?

提前致谢!

这有效

SELECT article_id, article_name, article_image, article_url, article_feature_status, article_sponsor_status
FROM articles ORDER BY CASE WHEN article_sponsor_status = 'true' THEN 1 ELSE 2 END ASC, article_id DESC

最佳答案

ORDER BY 似乎需要第二个键。您的数据没有代表日期的明显列,而是类似:

SELECT . . . 
FROM articles
ORDER BY CASE WHEN article_sponsor_status = 'true' THEN 1 ELSE 2 END ASC,
<some date field> DESC

在 MySQL 中,您可以将其简化为:

SELECT . . . 
FROM articles
ORDER BY (article_sponsor_status = 'true') DESC,
<some date field> DESC

在数字上下文中,MySQL 将 bool 值视为数字,“1”表示真,“0”表示假。因此,降序排序会将匹配项放在不匹配项之前。

关于mysql - CASE WHEN 在 MySQL 中使用 ASC/DESC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51349892/

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