gpt4 book ai didi

Python将数组插入mysql表列避免记录重复

转载 作者:行者123 更新时间:2023-11-28 23:09:39 27 4
gpt4 key购买 nike

我有一个像这样的简单数组:

a=['a','b','c']

我需要将所有“a”元素插入到 Mysql 表“items”和列“names”中,如果该元素已经存在于“names”列中,则避免插入该元素,避免迭代和多次 INSERT 查询。

谢谢

最佳答案

1) 您可以使用 MySQL 特定的 INSERT ... ON DUPLICATE KEY UPDATE 语法。 (我假设列 'name' 上有 PRIMARY KEY 或 UNIQUE KEY)

(另外:a = list(set(a)) #to remove duplicates in a)。

a = ['a', 'b', 'c']
c = conn.cursor()
c.executemany('INSERT INTO items (name) VALUES (%s) ON DUPLICATE KEY UPDATE name = name', a)

2) 如果“名称”列没有唯一性约束,您可以检查哪些名称已经在数据库中并将它们从列表中删除以插入:

a = ['a', 'b', 'c']
c = conn.cursor()
c.execute('SELECT names from items')
existent_names = [name[0] for name in c]
a = list(set(a) - set(existent_names))

c.executemany('INSERT INTO items (name) VALUES (%s)', a)

关于Python将数组插入mysql表列避免记录重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46321303/

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