如何仅使用SQL使用另一个表中的信息更新表?

时间:2017-07-31 06:58:46

标签: mysql

MySQL Ver 14.14 Distrib 5.7.16,for Win64(x86_64)

我有两张桌子:

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中,我有以下记录: 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 在tag_table中,我有以下记录: tag_id, tag 1, "movie" 2, "iPad" 3, "car" 4, "phone" ... 操作后,我想将content_table更新为: 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 这些记录就是例子,事实上,content_table中有10K +记录,tag_table中有3k +记录。

1 个答案:

答案 0 :(得分:1)

填充一个二维数组,例如tagArray,用tag_id,tag来自tag表,然后迭代数组到substiture id和类似变量的数组到下面的更新sql语句并执行语句:

String sqlUpdate =“UPDATE content_table SET tag_id =”+ tagArray [i] [0] + “内容类似于CONCAT('%',”+ tagArray [i] [1] +“,'%')”;