sql >> データベース >  >> RDS >> Mysql

エントリが存在しない場合は作成し、存在しない場合は更新しますか?

    多くの開発者はまだクエリを実行してフィールドがテーブルに存在するかどうかを確認し、最初のクエリの結果に従って挿入または更新クエリを実行します。ONDUPLICATE KEY構文を使用してみてください。これは、はるかに高速で優れています。次に、2つのクエリを実行します。詳細については、こちら をご覧ください。

    cの値を同じに保ちたい場合は、同じ値で更新を行うことができます

    'replace'と'onduplicatekey'の違い:

    テーブルに主キーまたは一意キーがない場合、置換は意味がありません。

    VALUESを使用することもできます 実際の値を2回指定する必要がないようにする関数。例えば。代わりに

    INSERT INTO table (a,b,c) VALUES (4,5,6) ON DUPLICATE KEY UPDATE c=6;

    使用できます

    INSERT INTO table (a,b,c) VALUES (4,5,6) ON DUPLICATE KEY UPDATE c=VALUES(c);

    ここで、VALUES(c) 以前に指定された値(6)に評価されます。



    1. Rails 3 ActiveRecord:関連付けをカウントして並べ替え

    2. エラー1044(42000):データベース'db'へのユーザー''@'localhost'のアクセスが拒否されました

    3. pg_stat_activityの使い方は?

    4. SQL Server(T-SQL)でのCHAR()関数のしくみ