如果字段值不存在,则插入而不使用忽略,唯一


insert if a field value doesn't exist without using ignore,unique

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

  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'

这似乎不起作用

试试这个,

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'

简单的方法:

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

您可以使用

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

在这里,您必须将fb_id设置为唯一,以防止重复输入。仅当数据库中不存在fb_id时,它才会插入。

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

$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')");
}