gpt4 book ai didi

php - 如果其中一列大于时间戳,Mysql 按两列排序

转载 作者:行者123 更新时间:2023-11-29 08:25:16 25 4
gpt4 key购买 nike

我在 PHP 中有这个 SQL SELECT:

SELECT * 
FROM ads
ORDER BY ad_sponsored_date DESC, ad_date DESC

我想显示广告列表,它们通常按日期排序,但如果有赞助,那么它会显示在顶部。上面的内容很好地做到了这一点;但我还需要测试 ad_owned_date 是否不大于时间戳,如果是,则仅按第二个 (ad_date) 排序,这可能吗?

类似这样的东西,但我不知道正确的语法:

SELECT * 
FROM ads
ORDER BY (ad_sponsored_date DESC IF ad_sponsored_date > $timestamp, ad_date DESC)

最佳答案

这会捕获 SQL 中的逻辑:

SELECT *
FROM ads
ORDER BY (case when ad_sponsored_date > $timestamp then ad_sponsored_date end) desc,
ad_date DESC;

但是,我不清楚如何处理 if 的“else”部分。

注意:在 MySQL 中,按降序排序,NULL 值被放置在最后,这就是为什么这会将搜索广告置于列表顶部的原因。

关于php - 如果其中一列大于时间戳,Mysql 按两列排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18138923/

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