SQLMERGE INTO rec_search_solution_field e1
USING (SELECT field_id, order_no
FROM rec_search_solution_field
WHERE solution_id =
'2023062616531652c6e468'
AND order_no IS NOT NULL) e2
ON (e1.field_id = e2.field_id)
WHEN MATCHED THEN
UPDATE
SET e1.order_no = e2.order_no
WHERE e1.solution_id in
('2023071916160381771c2e',
'20230724150725f378cd5f')
update子项的时候,使用in的方式会导致,只有一个子项会更新,其他子项还是原来的,因为 如果rec_search_solution_field表中有多个具有相同field_id的记录,那么这个MERGE语句将只更新第一个匹配的记录。如果需要更新所有匹配的记录,可以考虑使用其他方法,如循环或游标。
修改
sql
MERGE INTO rec_search_solution_field e1
USING (SELECT field_id, order_no
FROM rec_search_solution_field
WHERE solution_id =
'2023062616531652c6e468'
AND order_no IS NOT NULL) e2
ON (e1.field_id = e2.field_id)
WHEN MATCHED THEN
UPDATE
SET e1.order_no = e2.order_no
WHERE e1.solution_id ='2023071916160381771c2e'
编java代码的时候,foreach的方式遍历子项id,循环的调用margesql
本文作者:Weee
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!