mysql中update的基础用法是update 表 set 列1=?,列2=?,... where 筛选条件,这样的语句一次只可以对符合条件的所有行更新相同的数据,但update语句还可以join其它的表,从别的表读取数据更新到对应的行上,这样就可以实现对不同的行更新不同的数据,如下:update
表名 as t1
inner join 表2 as t2 #也可以left join 或 right join 或 join,这里的join和select里面那个join用法是一样的
on t1.id列名=t2.id列名
set
t1.列1 = t2.列1,
t1.列2 = t2.列2虽然上面的方法能实现标题的要求,但总不能先把数据插入一个表再这样update吧,于是我想了一会儿,想到如果要提交多组数据肯定要把数据结构化,如果要提交结构化数据那肯定是要用json,mysql 的json函数里有一个JSON_TABLE函数可以用来把一个json转换成一个表类型,那么这个方法就好实现了,只要把上面的表2替换成用JSON_TABLE生成的表,就可以通过直接向mysql提供一个json来对不同的行更新不同的数据了,如下:update
表名 as t1
inner join JSON_TABLE(
?,
'$[*]' COLUMNS ( #把json作为一个
...
继续阅读
(109)