如果在不使用ignore,unique的情况下不存在字段值,则插入

时间:2012-04-09 12:04:48

标签: php mysql

如果字段中不存在特定值,如何插入记录

  INSERT INTO `users` (fb_id, username) 
    SELECT '.$id_signed_in.', '.$user_signed_in.' FROM `users` 
    WHERE  NOT EXISTS (SELECT * FROM `users` 
                      WHERE fb_id='.$id_signed_in.') 
    LIMIT 1'

这似乎不起作用

2 个答案:

答案 0 :(得分:1)

请试试这个,

INSERT INTO `users` (fb_id, username) 
SELECT '.$id_signed_in.', '.$user_signed_in.' FROM `users` 
WHERE fb_id NOT IN(SELECT fb_id FROM `users` 
                  WHERE fb_id='.$id_signed_in.') 
LIMIT 1'

答案 1 :(得分:0)

简单方法:

如果您希望某个字段是唯一的,请将其设置为唯一,并删除重复的条目(如果存在)。

您可以使用

insert ignore into users (fb_id, username) values ('$id_signed_in','$user_signed_in')

在这里,您必须将fb_id设置为唯一,以防止重复输入。如果db中不存在fb_id,它只会插入。

另一种不使用ignore的方法,唯一:

$res = mysql_query("select id from users where fb_id='$id_signed_in'");
if(!(mysql_num_rows($res)>0)){
    mysql_query("insert into users (fb_id, username) values ('$id_signed_in','$user_signed_in')");
}