php - 我怎样才能简化这个 mysql 查询?

标签 php mysql sql

我为每个代理重复了 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/

相关文章:

mysql - 如何将秒/分钟放在查询上?

sql - sql server中的左函数

Java mysql 如果表存在

php - 如何将php中的数组值插入到sql数据库中

PHP:准备好的语句,IF 语句需要帮助

mysql - 将充满重复条目的列设置为 PRIMARY AUTO_INCRMENT?

MySQL 权重评分

php - Zend Framework session 命名空间调试 print_r 或等价物

php - 如何在 HTML 按钮中从 mySql 加载数据?

MySQL 查询和索引