1

可能重复:
避免重复进入 mysql 数据库的最佳方法

如果用户表中已经存在同名用户,这是我添加用户并拒绝他们的查询:

insert into  user values(?, ?, ?, ? ) select * from user 
where NOT EXISTS(select * from user where user.username = ?);
4

3 回答 3

1

我猜您的意思是相同的用户名,因为名称可以相同。

所以试试用这个看看

     INSERT INTO  user (column1, column2, column3,...)
     VALUES  (value1, value2, value3,...)
     WHERE NOT EXISTS(
     SELECT username FROM user)

如果您的意思是名称,只需将名称替换为用户名

于 2012-12-03T12:02:57.717 回答
1

只需使用INSERT IGNORE. 如果唯一列中有重复项,则不会发生任何事情。

于 2012-12-03T11:48:53.140 回答
0

如果它应该是唯一的,为什么不将用户名定义为主键?

于 2012-12-03T11:48:53.770 回答