データベースに 3 つのテーブルがあり、
posts
列post_id
、post_title
、およびpost_text
tags
列tag_id
とtag_text
post_tag
列post_id
とtag_id
新しい投稿を作成するためのストアド プロシージャを作成したいと考えています。この投稿には、任意の数のタグを付けることができます。タグがまだ存在しない場合は、tags
テーブルに追加する必要があります。
今私の問題は、タグをコンマ区切りのリストとして取得していることです(例:「tag1、tag2、tag3」)。これらの各値からテーブルの 1 つの行を作成するための最良の方法は何ですか。
これまでの私のアイデアは次のとおりです。
- 投稿の作成を複数のストアド プロシージャに分割し、タグごとに 1 つ呼び出します。
- DB の文字列に対してある種の爆発関数を使用し、ループを使用して結果のすべてのタグを挿入します (これが可能かどうかさえわかりません)。
- ストアド プロシージャを削除し、ステートメント全体を文字列としてまとめます (それはしたくありません)。
- MySQL が可変パラメーター リストを受け入れるようにする方法を見つける。
これを機能させるための他の/より良い方法はありますか、またはこの問題への最良のアプローチは何ですか?