这应该为您工作:
UPDATe functionsSET parent_function = function_idWHERe parent_function IS NULLAND function_id IN (SELECT parent_function FROM functions)
它将设置为
parent_function等于
function_id尚未设置的位置,以及它在
parent_function列中某处出现的位置。
如果您实际上不想修改表数据,但仍返回所需的值,则可以使用类似的逻辑,例如:
SELECt f.function_id, COALESCE(f.parent_function, f2.function_id) as parent_functionFROM functions fLEFT JOIN functions f2 ON f.function_id = f2.function_id AND f2.function_id IN (SELECt parent_function FROM functions)



