MySQL 的 REPLACE INTO 语句是根据主键或唯一索引来判断记录是否已存在,并执行替换操作。如果你只想根据第一列字段 station_num 来判断是否有相同记录并进行替换,可以使用 UPDATE 语句来实现。以下是修改后的代码示例:

import mysql.connector

table_name = "mytable"
columns = ["station_num INT", 'employeer_name' VARCHAR(255), "dist FLOAT", 'station_time' DATETIME, 'result' VARCHAR(255)]
mydata = [(12145217, "王二麻子-李四", 17.23, "2023-12-23 12:56", "合格")]

# 连接数据库
conn = mysql.connector.connect(host="localhost", user="your_username", password="your_password", database="your_database")
cursor = conn.cursor()

# 遍历数据列表,根据第一列的值判断是否存在相同记录并进行替换
for data in mydata:
    update_query = f"UPDATE {table_name} SET employeer_name = %s, dist = %s, station_time = %s, result = %s WHERE station_num = %s"
    cursor.execute(update_query, (data[1], data[2], data[3], data[4], data[0]))
    if cursor.rowcount == 0:
        insert_query = f"INSERT INTO {table_name} ({', '.join([column.split()[0] for column in columns])}) VALUES ({', '.join(['%s'] * len(columns))})"
        cursor.execute(insert_query, data)

conn.commit()
print("数据插入成功或已替换现有数据")

# 关闭数据库连接
cursor.close()
conn.close()

在上述示例中,我们遍历数据列表,并根据第一列的值执行 UPDATE 语句来替换现有记录的值。如果 UPDATE 语句没有影响任何行(rowcount 为 0),则表示没有相同的记录存在,我们使用 INSERT INTO 语句插入新记录。

请确保在 station_num 字段上设置了唯一索引或主键,以便 UPDATE 语句可以正确判断记录是否已存在。通过这种方式,你可以根据第一列字段的值来判断是否有相同记录,并执行替换操作。

MySQL UPDATE 语句替换数据:根据第一列字段判断是否存在相同记录

原文地址: https://www.cveoy.top/t/topic/bE7z 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录