0

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

  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'

这似乎不起作用

4

2 回答 2

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'
于 2012-04-09T12:15:51.767 回答
0

简单的方法:

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

您可以使用

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

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

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

$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')");
}
于 2012-04-09T12:54:46.217 回答