这个功能主要用于月销售排行,周销售排行等。
用到的SQL语句
INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name [(col_name,...)]
SELECT ...
[ ON DUPLICATE KEY UPDATE col_name=expr, ... ]
REPLACE [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name [(col_name,...)]
SELECT ...
[ ON DUPLICATE KEY UPDATE col_name=expr, ... ]示例
$stardate = strtotime(date('Y-m'));
$enddate = TIMESTAMP;
$sql = "REPLACE INTO ".DB::table('common_month_credit')." (`uid`, `extcredits5`, `time`, `dateline`)
SELECT `cl`.`uid`, SUM(`cl`.`extcredits5`) AS extcredits5, {$this->date}, {$enddate}
FROM ".DB::table('common_credit_log')." `cl` WHERE `cl`.`dateline` BETWEEN {$stardate} AND {$enddate} GROUP BY `uid` LIMIT 0, 500";
DB::query($sql);
上面这段代码来自项目代码片段,目的是统计当月的积分消费情况。用于下一步做月销售排行。
关于INSERT ……SELECT 和REPLACE……SELECT 语句的区别,可以查手册或搜索。
使用INSERT...SELECT,可以快速地从一个或多个表中向一个表中插入多个行。