编辑
2023-10-07
遇到的问题
00
请注意,本文编写于 544 天前,最后修改于 544 天前,其中某些信息可能已经过时。

目录

示例

示例

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 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 许可协议。转载请注明出处!