从值列表中创建一个包含一列的表作为存储过程的输入

时间:2019-07-15 18:47:40

标签: mysql

我正在接收一个列表作为MySQL 5.6中存储过程的输入,并且需要创建一个具有列(listOfUsers)的临时表。列表中的每个项目都必须是该列各自的行。

到目前为止,我所看到的所有答案都显示了WHERE子句中用于过滤查询的列表。我不尝试过滤任何内容,仅使用列表中的一列创建表。

这可能吗?

1 个答案:

答案 0 :(得分:0)

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

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", "");

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

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