gpt4 book ai didi

mysql - DELETE 的目标表...不可更新

转载 作者:搜寻专家 更新时间:2023-10-30 20:41:17 27 4
gpt4 key购买 nike

我有这样的疑问

SET @n=0;
DELETE t3 FROM (
SELECT id, project_id, task_id, user_id,grouper
FROM (
SELECT id, project_id, task_id, user_id,
@n:=if(status=55,@n+1,@n),
if(status=55,@n-1,@n) as grouper FROM timelog
WHERE user_id='5' ORDER BY id ASC
) as t
where grouper>-1
group by grouper) as t3 WHERE grouper=1

为此我收到 DELETE 的目标表 t3 不可更新

这个错误有什么解决办法吗?
基本上我正在尝试的是使用 delete 中的 select 删除标有 grouper 的一组表行。我也很高兴有其他与此不同的解决方案或想法。

sql fiddle :http://sqlfiddle.com/#!2/33820/2/0

编辑:感谢这里的答案是工作代码(如果有人需要类似的东西):

SET @n=0;
delete from timelog where id in ((SELECT id
FROM (
SELECT id, project_id, task_id, user_id,
@n:=if(status=55,@n+1,@n),
if(status=55,@n-1,@n) as grouper FROM timelog
WHERE user_id='5' ORDER BY id ASC
) as t
where grouper>-1 and grouper=1
group by grouper))

最佳答案

希望我有更多时间......但是快速的伪代码......

delete from timelog where id in  ((SELECT  id
FROM (
SELECT id, project_id, task_id, user_id,
@n:=if(status=55,@n+1,@n),
if(status=55,@n-1,@n) as grouper FROM timelog
WHERE user_id='5' ORDER BY id ASC
) as t
where grouper>-1
group by grouper) as t3 WHERE grouper=1)

我所做的只是将 subselect 语句更改为 where 子句,该子句仅返回原始子查询中列出的 ID。

编辑 - 括号有点偏离,我想我现在有了。老实说,这真的可以清理成一个 select 语句,而不是这里的嵌套版本。

关于mysql - DELETE 的目标表...不可更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18963643/

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