将分隔字符串拆分为存储过程中的变量[重复]

Posted

技术标签:

【中文标题】将分隔字符串拆分为存储过程中的变量[重复]【英文标题】:Split a delimited string into variables in stored procedure [duplicate] 【发布时间】:2012-09-20 13:25:44 【问题描述】:

可能重复:Can mysql Split a column?

我将从我的 java 代码中将一个由过滤器参数组成的逗号分隔字符串传递给我的mysql 存储过程。这将由过程的IN 参数之一获取。

我想将此逗号分隔的字符串拆分为单独的变量,并在不同的查询中使用它们。

在谷歌上我发现this MySQL substring function

但是有一个问题:

mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2);
    -> 'www.mysql'

但我想要www,mysql,com 没有规定将子字符串从第一个分隔符获取到下一个分隔符,依此类推...

【问题讨论】:

【参考方案1】:

MySQL 以及其他 RDBMS 不提供此类功能。

你要找的是for this,一个功能齐全的分离器功能。

在 SO 上已多次询问您想要什么。

Here、here 和 here 你有同样的问题。

【讨论】:

正如 Yaroslav 所说,这是可能的,但是在分隔可能包含逗号的变量时会遇到问题。 @njk 我不这么认为,如果你看一下函数,它有2个参数,第二个是你要使用的分隔符,可以是任何东西,逗号,点,斜线。我还没有测试过是否也可以是一些奇怪的字符,甚至超过 1 个字符。 是的,有。看看this 和this。

以上是关于将分隔字符串拆分为存储过程中的变量[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在存储过程中拆分逗号分隔的字符串?

将一列中的字符串拆分为表维护 ID 的多个分隔符

MySQL查询将分隔字符串值拆分为单独的列[重复]

获取字符串,按分隔符拆分并插入到 Oracle 中的表过程 [重复]

Java:使用正则表达式拆分字符串而不删除分隔符[重复]

将逗号分隔的字符串拆分为mysql中的行