【问题标题】:Create a table with one column from a list of values as input to stored procedure创建一个表,其中包含值列表中的一列作为存储过程的输入
【发布时间】:2019-11-24 11:59:44
【问题描述】:

我收到一个列表作为 MySQL 5.6 中存储过程的输入,我需要创建一个包含一列 (listOfUsers) 的临时表。列表中的每个项目都必须是该列的自己的行。

到目前为止,我看到的所有答案都显示了在 WHERE 子句中用于过滤查询的列表。我不想过滤任何东西,只是从列表中创建一个包含一列的表。

这可能吗?

【问题讨论】:

    标签: mysql


    【解决方案1】:

    我将假设示例中的一些细节,我希望我的假设与您的问题相关。假设我们在文件的一行中有一个逗号分隔的列表。然后我们可以这样做:

    create table t1 (s varchar(50));
    load data local infile '/tmp/file.txt' into table t1 
    lines terminated by ',';
    update t1 set s = replace(s, "\n", "");
    

    需要最后一次更新才能从最后一列中删除虚假换行符。基于这个想法的东西有望解决您的问题。

    如果数据不是来自文件,需要最少应用程序编码的简单解决方案是将数据放在临时文件中,然后应用上述方法。或者,您可以只解析应用程序中的输入,然后构建多行插入。

    【讨论】:

    • 感谢您的回复。这不会来自文件。很抱歉没有指定这一点。该列表将在 POST API 调用的主体中传递。
    猜你喜欢
    • 1970-01-01
    • 2017-07-05
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 2015-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多