MYSQL-命令用于具有相同id的列中的复制值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL-命令用于具有相同id的列中的复制值相关的知识,希望对你有一定的参考价值。

我需要帮助来创建正确的mysql命令。 正如你在附件中看到的, 我需要使用attribute_id 77在列值中使用attribute_id 78复制字符串中的字符串,其中entity_id是相同的。

任何人都可以帮我写出正确的代码吗?提前致谢

screenshot sql tabble

答案

这样做:

UPDATE T
SET value = A.value
FROM
    YourTable T
    CROSS APPLY
    (
        SELECT TOP 1 value
        FROM YourTable
        WHERE
            [entity_id] = T.[entity_id]
            AND attribute_id = 78
    ) A
WHERE attribute_id = 77
另一答案

这是基于OP真正使用SQL Server(我非常怀疑,因为他们已经标记了phpmyadmin)。

WITH CTE AS (
    SELECT [value],
           LEAD([value]) OVER (PARTITION BY entity_id ORDER BY attribute_id) AS NextValue
    FROM YourTable
    WHERE attribute_id IN (77,78))
UPDATE CTE
SET value = NextValue
WHERE attribute_id = 77;

以上是关于MYSQL-命令用于具有相同id的列中的复制值的主要内容,如果未能解决你的问题,请参考以下文章