MySQL“替换为选择”

我目前正在使用以下语句:
REPLACE INTO TableName (Col1, Col2, Col3, Col4) SELECT * FROM AnotherTable WHERE Col2 = 'Something' AND Col3 <> 'word'

这样做的问题是,表名包含附加列(即COL0COL5COL6是不存在的)AnotherTable,其数据我不想擦拭。

我注意到有一个称为的语句,INSERT INTO ... ON DUPLICATE KEY UPDATE但是我不确定如何将该SELECT * FROM语句与我用来从另一个表复制特定数据的语句合并。如果可能的话,该如何做?

如有必要,可以使用补充的Python2.7代码。

服务器版本: 10.1.23-MariaDB-9 + deb9u1 Raspbian 9.0


冉冉说
浏览 162回答 1
1回答

胡子哥哥

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。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python