为了账号安全,请及时绑定邮箱和手机立即绑定

MySQL“替换为选择”

MySQL“替换为选择”

冉冉说 2021-05-10 17:26:18
我目前正在使用以下语句:REPLACE INTO TableName (Col1, Col2, Col3, Col4) SELECT * FROM AnotherTable WHERE Col2 = 'Something' AND Col3 <> 'word'这样做的问题是,表名包含附加列(即COL0,COL5,COL6是不存在的)AnotherTable,其数据我不想擦拭。我注意到有一个称为的语句,INSERT INTO ... ON DUPLICATE KEY UPDATE但是我不确定如何将该SELECT * FROM语句与我用来从另一个表复制特定数据的语句合并。如果可能的话,该如何做?如有必要,可以使用补充的Python2.7代码。服务器版本: 10.1.23-MariaDB-9 + deb9u1 Raspbian 9.0
查看完整描述

1 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

INSERT INTO TableName (Col1, Col2, Col3, Col4) SELECT * FROM AnotherTable WHERE Col2 = 'Something' AND Col3 <> 'word' ON DUPLICATE KEY UPDATE Col1=AnotherTable.Col1, Col2=AnotherTable.Col2, Col3=AnotherTable.Col3, Col4=AnotherTable.Col4

请注意,可以通过格式使用完全限定的引用来Table.Column替代静态/指定值。

正如danblack提醒的那样,该REPLACE功能由ON DUPLICATE KEY UPDATE引入的接管,后者取决于UNIQUE索引或PRIMARY KEYs。


查看完整回答
反对 回复 2021-05-25
  • 1 回答
  • 0 关注
  • 161 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号