MySQL的 - 插入逗号通过存储过程分离成列表规范化的表(MySQL - Insert comma

2019-10-18 04:48发布

我在我的数据库3个表,

  • posts与列post_idpost_titlepost_text
  • tags与列tag_idtag_text
  • post_tag与列post_idtag_id

我想写一个存储过程创建一个新的职位。 这篇文章可以有任意数量的标签。 如果标签不存在,它应该被添加到tags表。

现在我的问题是,我得到的标签,以逗号分隔的列表(例如“标签1,标签2,标签3”)。 是什么力量让在表中的一行出每个值的最佳方法。

我的想法到现在为止是:

  • 拆分后创建多个存储过程和调用一个对每个标记。
  • 使用某种对在DB串爆炸功能和使用循环插入每一个结果标记(我甚至不知道这是可能的)。
  • 删除存储过程并组建整个语句作为字符串(我宁愿没有这样做)。
  • 寻找一种方法来使MySQL的接受变量参数列表。

是否有任何其他/更好的方法来完成这项工作,或者什么对这个问题的最好方法?

文章来源: MySQL - Insert comma separated list into normalized tables via stored procedure