【问题标题】:Parametrizing SQL script参数化 SQL 脚本
【发布时间】:2011-12-21 16:58:15
【问题描述】:

我必须做

SELECT column1,column2
INTO OUTFILE 'out_1.csv'
FROM table1
WHERE column1.name = '1'

SELECT column1,column2
INTO OUTFILE 'out_2.csv'
FROM table1
WHERE column1.name = '2'

SELECT column1,column2
INTO OUTFILE 'out_3.csv'
FROM table1
WHERE column1.name = '3'

等等…… 我认为这样做是个好主意:

SELECT column1,column2
INTO OUTFILE 'out_$1.csv'
FROM table1
WHERE column1.name = $1

并通过 UNIX shell 脚本传递参数 $1。但也许有更好的方法。 是否有一种 SQL“本机”方式来遍历从 1 到 40 的范围?

【问题讨论】:

    标签: mysql sql-parametrized-query


    【解决方案1】:

    当然。您可以创建存储过程并使用LOOPWHILE

    【讨论】:

    • 我需要创建存储过程吗?
    • 如何将counter INT变量的值展开成MySQL STRING?
    • @user869097 使用CONCAT
    • 对不起,但是对于我上面的示例查询,在 MySQL 中使用 WHILE 并不是那么简单,如果你有一个 WHILE 示例的链接而不打印一个糟糕的计数器的输出,那真的很酷
    • 在您上面的示例中,WHERE 子句确实非常简单。如果您有一个变量,您可以直接在 WHERE 子句和 INTO OUTFILE 中使用它,例如CONCAT('out_', @somevar, '.csv')。这些都在文档中,并且在 cmets 中也有有价值的信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 2021-10-01
    • 2014-12-25
    • 1970-01-01
    • 2016-12-01
    相关资源
    最近更新 更多