gpt4 book ai didi

PHP:高级 ORDER BY

转载 作者:可可西里 更新时间:2023-11-01 07:33:31 26 4
gpt4 key购买 nike

我创建了一个房地产网站,我希望按照列表的最后更新和完整性对​​列表进行排序。所以我一直想弄清楚如何结合最近更新的列表按mysql中的字段(completion_score)进行排序。完成分数将采用 100 分制,0 分为差,100 分为完美完成。当列表被添加和更新并保存在 mysql 数据库中时,我将计算完成分数。我猜想我将不得不以某种方式将日期和 completion_score 结合起来以得出总数,但我不确定如何在一个 SELECT 中执行此操作。

目前我正在使用这个(显然不考虑完成分数):

ORDER BY ".$wpdb->prefix."fsrep_listings.listing_featured DESC, ".$wpdb->prefix."fsrep_listings.listing_last_updated DESC

我在想,如果是上周完成的,完成分数加30分,如果是上个月完成的,完成分数加20分,如果是上个月完成的,完成分数加20分。最后三个月我会在完成分数上加 10 分。然后我可以根据这个更新的完成分数来订购它。问题是我如何让它每天更改以调整分数。

听取 Mark 的建议,我编写了以下代码:

ORDER BY $wpdb->prefix.'fsrep_listings.listing_score' + if($wpdb->prefix.'fsrep_listings.listing_last_updated' > NOW()-INTERVAL 1 WEEK,30,if($wpdb->prefix.'fsrep_listings.listing_last_updated' > NOW()-INTERVAL 1 MONTH,20,if($wpdb->prefix.'fsrep_listings.listing_last_updated' > NOW()-INTERVAL 3 MONTHS,10,0)))' DESC'; 

然后我收到以下解析错误:语法错误,意外的 T_IF in/home/...

最佳答案

你的想法听起来不错。为什么不用它运行?

ORDER BY completion_score + IF(date > NOW()-INTERVAL 1 WEEK,30,IF(date > NOW()-INTERVAL 1 MONTH,20,IF(date > NOW()-INTERVAL 3 MONTHS,10,0))) DESC

不管怎么说,都是那种效果。

关于PHP:高级 ORDER BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7775610/

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