Php SQL-在WHERE条件下使用数学运算
我目前有以下PHP/SQL代码:Php SQL-在WHERE条件下使用数学运算,php,sql,Php,Sql,我目前有以下PHP/SQL代码: $today = date("Y-m-d"); $sqlQuery = 'SELECT id FROM post WHERE (100*((agree+disagree)-('.nbDays('date', $today).')*10) >= 75)'; 还有我的工作 function nbDays($debut, $fin) { $nbSecondes= 60*60*24; $debut_ts = strt
$today = date("Y-m-d");
$sqlQuery = 'SELECT id FROM post
WHERE (100*((agree+disagree)-('.nbDays('date', $today).')*10) >= 75)';
还有我的工作
function nbDays($debut, $fin) {
$nbSecondes= 60*60*24;
$debut_ts = strtotime($debut);
$fin_ts = strtotime($fin);
$diff = $fin_ts - $debut_ts;
return round($diff / $nbSecondes);
}
下面是我的post表的外观:
Post
-- #id
-- [int] agree
-- [int] disagree
-- [datetime] date
我想做的是为符合此条件的帖子返回一个ID数组
(100*(同意/(同意+不同意))-(从发布日期到今天的天数)>75
我想使用SQL请求,这样我就不必在排序之前列出所有帖子
我希望我足够清楚,希望你能帮助我
非常感谢 在您的情况下,您可以编写一个数据库存储过程来处理 你的逻辑。然后直接在php中调用数据库过程。简言之 如果您使用MYSQL,也许可以尝试以下简单查询
SELECT id FROM post WHERE (100*((agree+disagree)-(UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(date))*10) >= 75);
你真的想在查询中调用一个PHP函数吗?你应该考虑使用<代码> DATEDIFO<代码>,或者在你从数据库中检索到之前,从数据库(日期)中调用你所选择的DbMsAs()的NBaysay.()的等价物。SQL不是那样工作的谢谢,我想这正是我需要的。