根据 csv文件 快速生成自定义 mysql 语句

自定义模板sql: (2个参数的)
update user u set u.name = '#{a}' where u.id ='#{b}' ;
建立csv文件数据如下:data.csv (2个参数的)

在这里插入图片描述

效果: 生成的result.sql文件
update user u set u.name = '张三01' where u.id ='1' ; 
update user u set u.name = '张三12' where u.id ='2' ; 
update user u set u.name = '张三23' where u.id ='3' ; 
update user u set u.name = '张三34' where u.id ='4' ; 
update user u set u.name = '张三45' where u.id ='5' ; 
执行脚本文件:sql2.bat (2个参数的)
@echo off
setlocal enabledelayedexpansion

set "templateSql=update user u set u.name = '#{a}' where u.id ='#{b}' ;"
set "output=result.sql"

del %output%

for /f "tokens=1,2 delims=," %%a in (data.csv) do (
  set a=%%~a
  set b=%%~b
  set sql=!templateSql:#{a}=%%~a!
  set sql=!sql:#{b}=%%~b!
  echo !sql! >> %output%
)

echo SQL generation complete.
timeout /t 5 >nul
执行脚本文件:sql3.bat (3个参数的)
@echo off
setlocal enabledelayedexpansion

set "templateSql=update user u set u.name = '#{a}'  where u.id ='#{b}' and u.age=#{c}  ;"
set "output=result.sql"

del %output%

for /f "tokens=1,2,3 delims=," %%a in (data.csv) do (
set a=%%~a
set b=%%~b
set c=%%~c
set sql=!templateSql:#{a}=%%~a!
set sql=!sql:#{b}=%%~b!
set sql=!sql:#{c}=%%~c!
echo !sql! >> %output%
)

echo SQL generation complete.
timeout /t 5 >nul

data.csv 数据如下(3个参数的)

在这里插入图片描述

生成的sql语句

update user u set u.name = '张三01'  where u.id = '1' and u.age = 21  ; 
update user u set u.name = '张三12'  where u.id = '2' and u.age = 22  ; 
update user u set u.name = '张三23'  where u.id = '3' and u.age = 23  ; 
update user u set u.name = '张三34'  where u.id = '4' and u.age = 24  ; 
update user u set u.name = '张三45'  where u.id = '5' and u.age = 25  ;