gpt4 book ai didi

mysql - 将行设置为等于 mysql 中的其他行?

转载 作者:可可西里 更新时间:2023-11-01 06:37:05 25 4
gpt4 key购买 nike

这是我的表的当前状态:

mysql> select * from page;
+----+----------+----------------+------+---------+
| id | title | body | page | visible |
+----+----------+----------------+------+---------+
| 1 | my title | my body | NULL | 1 |
| 2 | my title | my body edited | 1 | 0 |
+----+----------+----------------+------+---------+
2 rows in set (0.00 sec)

我希望第 1 行包含第 2 行的值。基本上,我想这样做:

UPDATE page SET page.* = (SELECT * FROM page WHERE id = 2) WHERE id = 1;

这样的事情可能吗?

最佳答案

insert into page (id, title, body, page, visible) Select 2, title, body, page, visible

可以通过使用 ON DUPLICATE KEY UPDATE 在没有 DELETE 的情况下完成(仅在 MySQL 中):

INSERT
INTO page (id, title, body, page, visible)
SELECT 1, title, body, page, visible FROM page WHERE id=2
ON DUPLICATE KEY UPDATE
title= VALUES(title), page= VALUES(page), visible= VALUES(visible);

然而,也可以通过自连接以符合 ANSI 的方式完成(也许更好):

UPDATE page AS page1 JOIN page AS page2 ON page1.id=1 AND page2.id=2
SET page1.title=page2.title, page1.body= page2.body, page1.page= page2.page, page1.visible=page2.visible

关于mysql - 将行设置为等于 mysql 中的其他行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/469506/

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