python,pymysql 查询某条数据是否存在,如果不存在,则插入;如果存在,则更新
时间: 2023-07-28 19:12:26 浏览: 219
可以使用MySQL的`INSERT INTO ... ON DUPLICATE KEY UPDATE`语句来实现。
首先,需要连接数据库,并创建一个`cursor`对象来执行SQL语句。假设我们要操作的表名为`my_table`,其中有一个字段名为`id`,我们要查询的值为`1`,更新的字段名为`value`,更新的值为`new_value`,则代码如下:
```
import pymysql
# 连接数据库
conn = pymysql.connect(host='localhost', port=3306, user='root', password='123456', db='my_db')
cursor = conn.cursor()
# 查询是否存在数据
sql = "SELECT * FROM my_table WHERE id=%s"
cursor.execute(sql, (1,))
result = cursor.fetchone()
# 如果不存在,则插入数据
if not result:
sql = "INSERT INTO my_table (id, value) VALUES (%s, %s)"
cursor.execute(sql, (1, 'new_value'))
# 如果存在,则更新数据
else:
sql = "UPDATE my_table SET value=%s WHERE id=%s"
cursor.execute(sql, ('new_value', 1))
# 提交事务
conn.commit()
# 关闭连接
cursor.close()
conn.close()
```
在以上代码中,先使用`SELECT`语句查询是否存在数据,如果不存在,则使用`INSERT INTO`语句插入数据;如果存在,则使用`UPDATE`语句更新数据。最后需要使用`commit()`方法提交事务,关闭`cursor`和`conn`对象。
阅读全文