MySQL - 通过存储过程将逗号分隔列表插入规范化表中

时间:2013-05-26 20:02:49

标签: mysql stored-procedures csv insert

我的数据库中有3个表,

  • posts包含post_idpost_titlepost_text
  • tagstag_idtag_text
  • post_tagpost_idtag_id

我想编写一个用于创建新帖子的存储过程。这篇文章可能有任意数量的标签。如果标签尚不存在,则应将其添加到tags表中。

现在我的问题是,我将标签作为逗号分隔列表(例如“tag1,tag2,tag3”)。从这些值中的每个值中创建一行的最佳方法是什么。

到目前为止,我的想法是:

  • 将帖子创建拆分为多个存储过程,并为每个标记调用一个。
  • 对数据库中的字符串使用某种爆炸函数,并使用循环插入每个结果标记(我甚至不知道这是否可行)。
  • 删除存储过程并将整个语句组合成一个字符串(我宁愿不这样做)。
  • 找到一种让MySQL接受变量参数列表的方法。

有没有其他/更好的方法来完成这项工作,或者解决这个问题的最佳方法是什么?

0 个答案:

没有答案