gpt4 book ai didi

mysql - 使用 ORDER BY 和 LIMIT MYSQL 更新多个不同的表

转载 作者:行者123 更新时间:2023-11-29 17:27:09 25 4
gpt4 key购买 nike

对于初学者来说,我知道这是不可能的,我必须以某种方式使用 select,但不知道该怎么做。这是我现在简化的查询。

UPDATE table1 AS tb1 
LEFT JOIN table2 AS tb2 ON (tb1.id = tb2.id AND tb1.column1 = tb2.column1)
SET
tb1.columX = (@position_temp := @position_temp+1),
tb1.columY = 2,
tb1.columZ = 3,
tb2.columA = 0
WHERE tb1.id = X AND tb1.columnB = 10
ORDER BY tb1.columX DESC
LIMIT 10;

最佳答案

您不能在 MySQL 中将 UPDATEJOIN 一起使用 ORDER BY。假设table1(id)和table2(id,column1)是唯一的,这应该有效:

UPDATE table1 t1 JOIN
(SELECT tt1.*, tt2.column1
FROM table1 tt1 LEFT JOIN
table2 tt2
ON tt1.id = tt2.id AND tt1.column1 = tt2.column1
WHERE tt1.id = X AND tt1.columnB = 10
ORDER BY tt1.columX DESC
LIMIT 10
) tt1
ON tt1.id = t1.id LEFT JOIN
table2 t2
ON t2.id = tt1.id AND t2.column1 = tt1.column1
SET t1.columX = (@position_temp := @position_temp + 1),
t1.columY = 2,
t1.columZ = 3,
t2.columA = 0;

关于mysql - 使用 ORDER BY 和 LIMIT MYSQL 更新多个不同的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50898234/

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