mysql“替换为select from”替代

hc2pp10m  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(314)

我目前正在使用以下语句: REPLACE INTO TableName (Col1, Col2, Col3, Col4) SELECT * FROM AnotherTable WHERE Col2 = 'Something' AND Col3 <> 'word' 问题是tablename包含其他列(即col0、col5、col6),这些列不在另一个表中,我不想擦除它们的数据。
我注意到有一种说法叫做 INSERT INTO ... ON DUPLICATE KEY UPDATE 但我不知道如何把它和 SELECT * FROM 我用来从另一个表复制特定数据的语句。如果可能的话,这是怎么做到的?
如有必要,可以使用补充python2.7代码。
服务器版本:10.1.23-mariadb-9+deb9u1 raspbian 9.0

3phpmpom

3phpmpom1#

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 作为静态/指定值的替代。
正如丹布莱克所提醒的 REPLACE 功能由 ON DUPLICATE KEY UPDATE 这取决于 UNIQUE 索引或 PRIMARY KEY s。

相关问题