gpt4 book ai didi

MySQL INSERT 或 UPDATE from SELECT COUNT(*)

转载 作者:行者123 更新时间:2023-11-30 23:26:48 24 4
gpt4 key购买 nike

我有大量需要汇总的各种网络之间的身份验证日志。

先跑

SELECT Home, Con, COUNT(*) AS 'ACCEPTS' FROM AUTHLOG WHERE response='ACCEPT';

这给了我总结:

+------+------+---------+
| Home | Con | ACCEPTS |
+------+------+---------+
| net1 | net1 | 37 |
| net1 | net2 | 2 |
| net1 | net3 | 578 |
| net2 | net1 | 56 |
| net2 | net2 | 95621 |
| net2 | net3 | 465 |
| net3 | net1 | 91 |
| net3 | net2 | 83 |
| net3 | net3 | 891 |
+------+------+---------+

我需要开始将这些结果存储在一个单独的表中,累积总的 ACCEPTS(因为 AUTHLOG 表被截断)。

单独的汇总表非常简单:

CREATE TABLE ACCEPTS_SUMMARY (
Home char(50) DEFAULT NULL,
Con char(50) DEFAULT NULL,
Accepts INT UNSIGNED DEFAULT 0
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

有没有办法,最好是在 MySQL 中(主机上没有 Python 或 Perl,但 bash 脚本可以工作),我可以获得上述计数,并将它们添加到汇总表中的现有总计中,或者插入如果 Home 和 Con 组合尚不存在。

最佳答案

这应该可以解决问题:

INSERT INTO summary(Home, Con, ACCEPTS)
SELECT Home, Con, COUNT(*)
FROM AUTHLOG
WHERE response='ACCEPT'
ON DUPLICATE KEY UPDATE ACCEPTS = ACCEPTS + VALUES(ACCEPTS)

确保表 summary 在 (Home, Con) 上有一个 UNIQUE INDEX。

关于MySQL INSERT 或 UPDATE from SELECT COUNT(*),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12894891/

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