使用批处理文件创建sql脚本,并将csv文件中的多个变量添加到该sql脚本中

2w2cym1i  于 2021-06-23  发布在  Mysql
关注(0)|答案(1)|浏览(278)

我是批处理脚本的新手,正在努力编写一些可以:
1) 读取csv的第一列并将这些值设置为变量。
2) 编写一个简短的sql语句脚本,将所有这些变量添加到where子句中。
仅此而已。。。
我已经做了:
csv文件(要添加的变量)csv文件
批次代码批次代码
结果脚本:脚本
我需要的是:批处理的mysql脚本结果
有什么想法可以分享吗?

093gszye

093gszye1#

@echo off
setlocal

set "_InputFile=%userprofile%\Desktop\FC3.txt"

set "seq="
for /f "tokens=1 delims=," %%A in (%_InputFile%) do (
    call set "seq=%%seq%%%%~A,"
)

set "seq=(%seq:~,-1%)"

> FinalStage.sql echo SELECT * FROM Totalfm3 WHERE Totalfm3.BRN IN %seq%

exit /b
``` `%userprofile%` 预计是 `C:Users\Martin` 用你的帐户。 `%seq%` 存储以逗号分隔的数字。
这个 `call set` 一个附加的解析是否如此 `%%seq%%` 计算的变量名的值 `seq` 不需要延迟扩张。 `set "seq=(%seq:~,-1%)"` 修剪最后一个逗号,并在逗号分隔的值周围添加括号。
最后,将sql语句写入文件。
你家里的代币 `for` 循环与csv文件示例不匹配。我将代币设置为 `1` 以匹配csv文件示例。您可能需要调整代币以满足您的需要。
使多行语句。
更改:

FinalStage.sql echo SELECT * FROM Totalfm3 WHERE Totalfm3.BRN IN %seq%

(
echo SELECT * FROM Totalfm3
echo WHERE Totalfm3.BRN IN %seq%;
) > FinalStage.sql

补充 `;` 在语句末尾,因为mysql就是这样结束语句的。

相关问题