使用另一个表中的值更新一个MySQL表(原始表的数据类型为JSOn)

时间:2019-06-19 06:06:29

标签: mysql sql json

我正在尝试根据另一个MySQL表的信息来更新它。

我想将值与要更新的另一个表进行比较的原始表中有一个JSON对象。

这是我的桌子的样子

原始表

表1

id | programme
------------
1  | ["22","34"]
2  | ["10","11","12","13","14","15","17","18","19","20"]

要更新的表

表2

id | programme_id | table1_id
-----------------------------
1  |     22       |
2  |     18       |
3  |     12       |


UPDATE table2
INNER JOIN table1 USING (programme_id)
SET table2.table1_id = table1.id

这是预期的输出:

id | programme_id | table1_id
-----------------------------
1  |     22       |   1
2  |     18       |   2
3  |     12       |   2

1 个答案:

答案 0 :(得分:1)

set sql_safe_updates = 0;
update table2
inner join table1 
on JSON_SEARCH(table1.programme,'one',table2.programme_id) is not null
set table2.table1_id = table1.id;