P粉3389695672023-08-30 10:05:32
######解決:###### リーリー
イラスト:
最も内側のクエリ リーリー 挿入するデータを含む行がすでに存在するかどうかを検出するために、
WHERE NOT EXISTS条件として使用されます。このクラスの行を見つけた後にクエリが停止する可能性があるため、
LIMIT 1 (マイクロ最適化、省略可能)。
中間クエリ
リーリー
は挿入される値を表します。
は、すべての Oracle データベースにデフォルトで存在する特別な単一行単一テーブルを指します (
https://en.wikipedia.org/wiki/DUAL_table を参照)。 MySQL Server バージョン 5.7.26 では、FROM DUAL
が省略された場合に有効なクエリが得られますが、古いバージョン (5.5.60 など) では FROM 情報が必要のようです。 WHERE NOT EXISTS
を使用すると、最も内側のクエリで一致するデータが見つかった場合、中間クエリは空の結果セットを返します。
外部クエリ
リーリー
データを挿入します (中間クエリがデータを返す場合)。
P粉5210131232023-08-30 00:40:11
INSERT IGNORE INTO tableを使用します。
INSERT … ON DUPLICATE KEY UPDATE 構文もあり、
13.2.6.2 INSERT … ON DUPLICATE KEY UPDATE ステートメント で使用できます。
.org.ua からの投稿 Google の Web キャッシュ によると: