insertのような更新を実行することは可能ですか?
UPDATE `table` SET `value` ('N','N','N','N','Y','Y','Y','N', 'N') WHERE `my_id` = '1'
問題は、挿入される値の数が今はわからないことです。5または10になる可能性があります。
insertのような更新を実行することは可能ですか?
UPDATE `table` SET `value` ('N','N','N','N','Y','Y','Y','N', 'N') WHERE `my_id` = '1'
問題は、挿入される値の数が今はわからないことです。5または10になる可能性があります。
replace は insert と同じです。重複するキーがあるかどうかをチェックし、重複している場合は行を削除し、新しい行を挿入します。それ以外の場合は挿入します
たとえば、(Name,Type) の一意のインデックスがあり、次のコマンドを入力すると、これを行うことができます。
REPLACE INTO table1 (Name,Type,InitialValue,FinalValue) VALUES ('A',3,50,90 )
Name = 'A' および Type = 3 の行が既に存在し、置き換えられます
CREATE UNIQUE INDEX idx_name_type ON table1(Name,Type)
EDIT:簡単な注意 - REPLACEは常にDELETESしてからINSERTするため、削除時に排他ロックが必要であり、挿入時に排他ロックが必要なため、高負荷で使用することは決して良い考えではありません
一部のデータベース エンジンには
挿入 ... 重複キーの更新時に ...
を指定する必要がありますcolumn-name
。
UPDATE `table` SET `Col1`='y',`Col2`='n' ... WHERE `ID`='1'
または、1 つ以上の列/行を更新したい:
UPDATE `table` Set Col1='Y' WHERE `ID` IN ('1','11','13')