MySQL为多个表增加相同字段(列)

此篇博客介绍了如何使用CONCAT函数在MySQL中创建一个SQL语句,通过遍历符合条件的表,批量添加名为`base_url`的varchar字段,适用于op_xxx_manager数据库中的batch_xxx_detail_表格系列。

有多张表,需要加同一个字段,虽然mysql没提供可直接批量新增字段的功能,但可以曲线救国呀,用CONCAT拼接函数,显示出新增字段的语句,执行即可:

SELECT CONCAT('alter table ',table_schema,'.',table_name,' ADD COLUMN `base_url` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL AFTER `remark`;')  
from information_schema.tables  
where table_schema='op_xxx_manager' 
and table_name like 'batch_xxx_detail_%';

在这里插入图片描述执行:
在这里插入图片描述
大功告成!

MySQL 中,如果希望查询多个相同字段的数据量之和,可以通过分别对每个执行 `SUM()` 函数并结合 `JOIN` 或 `UNION` 的方式实现。以下是几种常见方法: ### 使用 `UNION ALL` 合并多个的总和 如果多个之间没有直接的关联关系,但希望将它们相同字段的总和合并计算,可以使用 `UNION ALL` 来连接多个查询结果,并通过外部查询进行汇总。 ```sql SELECT SUM(total_column) AS combined_sum FROM ( SELECT SUM(column_name) AS total_column FROM table1 UNION ALL SELECT SUM(column_name) AS total_column FROM table2 UNION ALL SELECT SUM(column_name) AS total_column FROM table3 ) AS combined_results; ``` 该查询首先分别计算 `table1`、`table2` 和 `table3` 中 `column_name` 字段的总和,然后通过 `UNION ALL` 将这些结果合并成一个结果集,最后使用外部查询对这些结果求和[^1]。 ### 使用 `JOIN` 查询关联的总和 如果多个之间存在关联字段(例如 `category_id`),可以通过 `JOIN` 查询来汇总不同相同字段的值。 假设 `table1` 和 `table2` 都有一个 `category_id` 字段,并且每个都有一个 `value` 字段需要求和,可以使用如下查询: ```sql SELECT t1.category_id, SUM(t1.value) + SUM(t2.value) AS total_sum FROM table1 t1 LEFT JOIN table2 t2 ON t1.category_id = t2.category_id GROUP BY t1.category_id; ``` 此查询通过 `LEFT JOIN` 连接两个,并基于 `category_id` 分组,对 `value` 字段分别求和后相加,最终得到每个分类的总和[^2]。 ### 使用子查询计算多个的总和 如果多个结构不同但需要计算相同字段的总和,可以使用子查询分别获取每个的总和,然后在主查询中进行加法运算。 ```sql SELECT (SELECT SUM(column_name) FROM table1) + (SELECT SUM(column_name) FROM table2) + (SELECT SUM(column_name) FROM table3) AS total_sum; ``` 此查询通过多个子查询分别计算每个字段总和,并在主查询中将这些值相加,返回最终的总和结果。 ---
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值