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がデータベースに存在しない場合にのみ挿入されます。

無視を使用しない別の方法、一意:

$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 に答える