可以使用 UPDATE 语句来实现这个需求:

UPDATE pano_view
SET fenzuid = CONCAT((SELECT parent FROM pano_fenzu WHERE id = pano_view.fenzuid AND parent = 'top'), '=child,', 'group=', pano_fenzu.id, ',sort=0')
WHERE EXISTS (SELECT 1 FROM pano_fenzu WHERE pano_fenzu.id = pano_view.fenzuid AND pano_fenzu.parent = 'top');

这个语句首先检查 pano_view 表中 fenzuid 对应的记录在 pano_fenzu 表中是否有 parent 为 'top' 的记录,如果有,则将 fenzuid 替换成 'parent=child,group=id,sort=0' 拼接而成的字符串。其中,'child' 表示当前记录的 id,'id' 表示 pano_fenzu 表中对应的记录 id。

注意,这个语句只会修改 fenzuid 为 parent 为 'top' 的记录,其他记录不会受到影响。同时,如果 pano_view 和 pano_fenzu 表中存在相同的 pano_id,但是 pano_fenzu 表中没有 parent 为 'top' 的记录,那么这个记录的 fenzuid 将不会被修改。

MySQL 优化:更新 pano_view 表中 fenzuid 字段

原文地址: https://www.cveoy.top/t/topic/lXVV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录