2017-07-31 6 views
0

のWin64用のMySQL版14.14按分5.7.16、(x86_64版)SQLのみを使用して別のテーブルの情報でテーブルを更新するにはどうすればよいですか?

は、私は2つのテーブルがあります。今

content_table: content_id, content(String), tag_id(int) 

tag_table: tag_id(int), tag(String) 

content_table.tag_idはすべて空です。私はそのようなことやりたい

:content_tableでレコードごとに

は、私が正しいTAG_IDを見つけたい(一つだけ)とrecord.tag_idを更新しました。タグはコンテンツのサブ文字列である必要があります。

SQLでのみ行う方法はありますか? または、別の言語のJDBCなどを使用する必要がありますか?

ありがとうございました。

データ例:content_tableで

、私はこれらのレコードがあります。tag_tableで content_id, content, tag_id 1, "This is a great movie", 0 2, "I bought the car last week", 0 3, "His iPad is a gift from his brother", 0 を、私はこれらのレコードがあります。 content_id, content, tag_id 1, "This is a great movie", 1 2, "I bought the car last week", 3 3, "His iPad is a gift from his brother", 2 これらのレコードは例です:操作後 tag_id, tag 1, "movie" 2, "iPad" 3, "car" 4, "phone" ... を、私はへcontent_table更新したいです実際、content_tableに10K +レコードがあり、tag_tableに3k +レコードがあります。

文字列:二次元アレイを移入

+2

サンプルデータを共有したり、タグをコンテンツとどのように一致させることができますか? – Mureinik

+0

達成したいことを理解できない –

+0

mysql [全文検索機能](https://dev.mysql.com/doc/refman/5.7/en/fulltext-search.html)を参照してください。 –

答えて

1

はtagArrayは、TAG_IDと、タグテーブルからのタグは、次の更新のSQLステートメントにIDとアレイから変数等をsubstitureとステートメントを実行するために、アレイを反復言いますsqlUpdate = "UPDATE content_table SET tag_id =" + tagArray [i] [0] + "コンテンツはLIKE CONCAT( '%'、" + tagArray [i] + "、 '%')";

+0

これは1つまたは2つのレコードに適していますが、各テーブルに10k +レコードがある場合はどうすればよいですか? – dif

+0

合意しましたが、JavaとこのSQLコマンドを組み合わせて、レコードを繰り返し処理し、updateコマンドを動的に生成します。そのため、タグテーブルから配列を作成し、次に配列からsubstiture idなどの変数に配列を繰り返します。 – BusinessPlanQuickBuilder

+0

私の答えを、私が意味することを示すために適応させました。 – BusinessPlanQuickBuilder

関連する問題