0

列の値が見つからない場合に、単一のクエリを使用してテーブルを挿入するにはどうすればよいですか。例/このユーザー名が見つからない場合にのみ、新しいユーザーを挿入したい

私が今行っているのは、既存のものを確認するための 1 つのクエリを発行し、既存のものがない場合は別のクエリを発行することです。合計 2 クエリ

 INSERT INTO friends (memberID) SELECT 1 WHERE NOT EXISTS (SELECT memberID FROM friends WHERE memberID =  1)
4

3 に答える 3

0

特定の値を持つ 1 つの行のみが必要なため、テーブルに UNIQUE 制約を適用する必要があります。次に例を示します。

ALTER TABLE friends ADD UNIQUE (memberID);

その後、IGNORE キーワードを挿入ステートメントに追加するだけで、エラーは報告されず、重複する行が既に存在する場合は挿入されません。

INSERT IGNORE INTO friends(memberID) VALUES(1);
于 2013-01-29T22:24:47.953 に答える
0

これはどう:

INSERT INTO YourTable (UserName)
SELECT x
FROM (SELECT 'New User Name' AS x) a
      WHERE x NOT IN(SELECT UserName
                     FROM YourTable)
于 2013-01-29T16:07:25.830 に答える