适用于Win64(x86_64)的MySQL Ver 14.14 Distrib 5.7.16

我有两个表:

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_id1, "This is a great movie", 02, "I bought the car last week", 03, "His iPad is a gift from his brother", 0
在tag_table中,我有以下记录:
tag_id, tag1, "movie"2, "iPad"3, "car"4, "phone"...
操作后,我想将content_table更新为:
content_id, content, tag_id1, "This is a great movie", 12, "I bought the car last week", 33, "His iPad is a gift from his brother", 2
这些记录是示例,实际上,content_table中有10K +条记录,而tag_table中有3k +条记录。

最佳答案

从标签表中填充一个带有tag_id,tag的二维数组,即tagArray,然后在数组上迭代到substiture id,并像将数组中的变量一样放入以下更新sql语句并执行该语句:

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

关于mysql - 如何仅使用SQL使用来自另一个表的信息来更新表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45409275/

10-11 03:09