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的列中的复制值的主要内容,如果未能解决你的问题,请参考以下文章

计算具有相同 id 的列的值的存储过程

如何将约束添加到 MYSQL 中的列仅以保存已存在于同一表的另一列中的值? [复制]

从表中选择行,其中具有相同 id 的另一个表中的行在另一列中具有特定值

MySQL更新列的序列号按具有相同值的字段分组

MySQL选择具有不同值的所有行相同的列

在Laravel中获取具有不同外国ID的列中的最大值