使用mysql shell客户端执行SQL脚本是否支持传入sql参数?

使用hive-cli跑SQL批处理的时候, 可以使用–hivevar将参数传递给SQL语句中, 替换${param}
tidb支持类似的功能吗?
举例:
– sql内容:
vi job1.sql
select * from t where dt = ${param}
– shell脚本:
sql=$(cat job1.sql)
mysql -uroot -proot -e “${sql}” --hivevar param=‘2023-08-01’

你可以写一个shell脚本 在脚本中调用sql执行并传参数进sql

用shell 脚本,将sql语句作为参数

啥意思?是类似这样吗?
– shell脚本
param=‘2023-08-01’
sql="select * from t where dt = ${param} "
mysql -uroot -proot -e “${sql}”

是类似这种?

这是shell的使用,跟tidb有什么关系呢,你的例子就蛮好的,可以用啊

也可以通过这种方式,mysql -u root -p -e “set @1:=‘tabname’; source test.sql;”
test.sql中内容是这样
select * from tab
where tname =‘@1’;

3 个赞

是这种

学到了。。。谢谢

有方法通过SQL的形式传入参数吗? 不通过shell传参数, 类似–hivevar的用法

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。