php - 删除或更新 SQL 中的重复值

标签 php mysql sql

我已在 steamid 的数据库表上放置了唯一索引。我不确定如何插入具有该键的重复值的记录(删除旧记录)而不会出现错误。有人可以编辑我的代码以使其适合吗,谢谢。

$sql = "INSERT INTO steam_data (reg_date, reg_year, steamname, steamid) VALUES ('$dateoutput', '$dateoutputyear', '$personaname', '$steamid')";

错误是:

Error: INSERT INTO steam_data (reg_date, reg_year, steamname, steamid) VALUES ('March 20, 07:09pm', '2017', 'Aweosmedude', '76561113498123831721') Duplicate entry '76561113498123831721' for key 'steamid'

最佳答案

这意味着您的 steam_data 表中已经有一条 streamid=76561113498123831721 的记录;并且您的架构中有一项约束,可确保您没有多个 streamid。因此,您可以执行 INSERT IGNORE INTOstream_data... 或执行 INSERT INTOstream_data...ON DUPLICATE KEY...

例如

在重复 key 更新时插入 steam_data (reg_date, reg_year, steamname, steamid) VALUES ('$dateoutput', '$dateoutputyear', '$personaname', '$steamid') steamname=VALUES(steamname) ;

(@ReneS 答案有 INSERT IGNORE INTO... 示例)

关于php - 删除或更新 SQL 中的重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42898713/

相关文章:

SQL Server 加密数据

mysql - SQL Select使一个值只出现一次

php - Symfony2 : Left Join producing wrong query

PHP Apple iOS 推送通知 : Command2 : Binary Interface and Notification Format

php - 使用 php ffmpeg 库转码视频

php - 从 PHP 向 MySQL 插入 BLOB 数据时,我看不到准确的数据类型

php - 与此 MySQLi/PHP 代码段的可维护性作斗争

javascript - php node.js redis session 共享身份验证

mysql - 更新表,其中列以值 'st' % 开头

mysql - 在 MySQL 中进行子分区时出现语法错误