【问题标题】:in MySQL, How to split a string value and insert each token in a table?在 MySQL 中,如何拆分字符串值并将每个标记插入表中?
【发布时间】:2012-06-05 22:07:11
【问题描述】:

我有一个名为“keywords”的表,其中包含以下字段:

ID [主键] |关键字 [varchar(255)]

每条记录的关键字字段都包含一个字符串值,例如“this, is, only, a test”

我不知道如何创建一个存储过程来将此字符串以“,”作为分隔符并将每个标记作为新记录插入到新表中。

提前谢谢你。

【问题讨论】:

    标签: mysql stored-procedures split record stored-functions


    【解决方案1】:

    MySQL 没有任何类型的 SPLIT() 或 EXPLODE() 字符串函数。简而言之,您需要手动遍历字符串以搜索逗号并在到达分隔符(逗号)或字符串末尾时插入该值。或者,您可以尝试使用 INSTR() 进行花哨的旋转,这样,您的里程可能会有所不同。

    我建议阅读 MySQL String Functions reference page 底部的一些 cmets。在页面上搜索 (Ctrl-F) 进行拆分,您会看到一些有用的想法。

    【讨论】:

      【解决方案2】:

      在这里,困难是用分隔符来切割你的字符串。 您需要像这样声明一个 FUNCTION : http://fdegrelle.over-blog.com/article-1342263.html 之后,您只需将值存储在表中,这很容易。 祝你好运!

      【讨论】:

        【解决方案3】:
        1. 使用 instr() 查找分隔符 (,) 的第一次出现。

        2. Substring() 将输入字符串从第零个字符拆分到第一个出现的字符 现在您已经分离了第一个字符串。 将分隔的字符串插入表中。

        3. 对输入字符串使用replace()来删除第一个值。

        4. 重复步骤 1 到 3,直到您的输入字符串为空。 希望这有效.. 祝你好运..

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-08-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-11-01
          • 2021-11-16
          相关资源
          最近更新 更多