我为每个代理重复了 3 次这 4 个查询。有没有办法简化/合并这些查询?我不介意使用 while 循环求和。唯一改变的是日期。
$john_week_total = mysql_result(mysql_query("SELECT SUM(tp) FROM info WHERE type='life' AND date >= '$monday' AND rvp ='john smith'"),0);
$john_month_total = mysql_result(mysql_query("SELECT SUM(tp) FROM info WHERE type='life' AND date >= '$this_month' AND rvp ='john smith'"),0);
$john_year_total = mysql_result(mysql_query("SELECT SUM(tp) FROM info WHERE type='life' AND date >= '$this_year' AND rvp ='john smith'"),0);
$john_total = mysql_result(mysql_query("SELECT SUM(tp) FROM info WHERE type='life' AND rvp ='john smith'"),0);
最佳答案
字段列表中可以有多个SUM
聚合器
SELECT
SUM(IF(date >= '$monday' AND rvp = 'john smith'), tp, 0) AS john_week_total
SUM(IF(date >= '$this_month' AND rvp = 'john smith'), tp, 0) AS john_month_totalo
-- etc.
FROM
info
WHERE
type = 'life'
您的代码容易受到注入(inject)攻击。您应该对 PDO 或 mysqli 使用正确的参数化查询
关于php - 我怎样才能简化这个 mysql 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18619925/