gpt4 book ai didi

使用左连接的 MySQL 更新查询

转载 作者:IT老高 更新时间:2023-10-28 23:46:33 37 4
gpt4 key购买 nike

表架构

表名:file_manager_folder

行:idparentIdname

我的查询模拟将一个文件夹移动到另一个文件夹并使用 IN(?) 接受一个数组。

如果还没有具有相同 parentId 和名称的文件夹,我希望我的更新仅“移动”一个文件夹。在任何普通文件系统下您所期望的那种行为。

例如:

UPDATE file_manager_folder set parentId = 54 where id IN( '1','2',3') 

将是一个不检查任何关于 parentId 和 name 的查询...但是我怎样才能让左连接工作。

这是我试过的一个..它完全不起作用。

SELECT * FROM 
file_manager_folders as a
LEFT JOIN file_manager_folders as b on a.id = b.id
WHERE b.id IS NOT NULL and a.id IN("1","2","3") and a.parentId = 54

UPDATE table1 LEFT JOIN table2 SET t1.x = t2.y ON 条件 WHERE 条件

最佳答案

因此,只有当目标父文件夹下的同名文件夹存在时,您才想移动文件夹:

UPDATE file_manager_folder f1
LEFT OUTER JOIN file_manager_folder f2
ON f1.name = f2.name AND f2.parentId = 54
SET f1.parentId = 54
WHERE f2.name IS NULL AND f1.id IN (1,2,3);

加入条件在目标父目录下搜索同名文件夹。 WHERE 子句测试不存在这样的文件夹(仅当外连接找不到匹配项时 f2.name 才为 null)。

关于使用左连接的 MySQL 更新查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3248531/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com