使用CONCAT语句批量执行MySQL插入操作

背景

批量插入是在MySQL操作中经常需要使用到的。使用CONCAT和GROUP_CONCAT语句将能够很大程度上提升工作效率,减少了对使用脚本完成任务的需求。通常情况下,直接使用SQL语句能够比使用脚本运行效率高上许多。

今天在工作过程中遇到了如下的一个实际问题:有两个表,数据量较大,分别为表X和表Y,结构如下:

需要进行的操作是,找出X表中Key2值中以“ZH_”开头的项目,提取出对应的Key1的值,将Key1的值对应插入Y表的KeyB。插入时,对应的KeyA置为3,KeyC置为0。

例如,在X表中有如下一个条目

这个条目满足要求,插入表Y

解决

考虑使用如下命令执行批量操作

要使用如下命令,关键难度在于得到VALUE部分,所以这里使用CONCAT和GROUP_CONCAT组合命令来完成。

首先,使用以下命令,得到组合好格式的VALUES

将结果组合到INSERT INTO语句中,便得到了我们需要的语句:

顺便提一句,使用以下命令是无法完成的:

暂无评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注