仅在值不存在时插入

时间:2011-02-08 06:54:09

标签: php mysql

+----+----------+-----------+
| id | gamertag | timestamp |
+----+----------+-----------+

所以我有上面的表格我想只插入一个gamertag(如果它尚不存在)。我怎么能这样做?

$gamertag = "l RaH l";
mysql_query("INSERT INTO `gamertags`(`gamertag`)VALUES ('".$gamertag."')");

4 个答案:

答案 0 :(得分:7)

您应该同时执行以下两项操作:{* 3}}列游戏广告使用insert ignore

唯一索引可防止添加重复行。

insert ignore会阻止mysql在未添加重复行时发出警告。

答案 1 :(得分:3)

Index gamertag column as unique。然后只有第一次插入才有效。如果存在相同的gamertag,则INSERT将失败。

答案 2 :(得分:2)

您可以尝试INSERT IGNORE,查看关于此关键字的mysql开发页面:)

编辑 - 基于以下评论:你需要将gamertag列作为唯一索引。
那些赞成的人可能已经把这个用于“理解”。

编辑 - 更新答案的最终答案:

$gamertag = "l RaH l";
mysql_query("INSERT IGNORE INTO gamertags(gamertag)VALUES ('".$gamertag."')");

不要忘记使用独特的索引 - 如果是gamertags列

答案 3 :(得分:0)

MySQL

的插入或更新不可用(至少不是)

查看MySQL的这些工作:http://bogdan.org.ua/2007/10/18/mysql-insert-if-not-exists-syntax.html