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 +记录。
答案 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] +“,'%')”;