UPDATE table SET column = 1 where column = 0;
INSERT (rows i just updated) INTO history_table;
私は何とかにこれらのIDに一致する行を選択クエリからのIDを格納し、その後、更新するために、それらを使用し、その後に挿入することができますしたいのですが履歴テーブル?
UPDATE table SET column = 1 where column = 0;
INSERT (rows i just updated) INTO history_table;
私は何とかにこれらのIDに一致する行を選択クエリからのIDを格納し、その後、更新するために、それらを使用し、その後に挿入することができますしたいのですが履歴テーブル?
(私はまだコメントできません)それは1つのクエリを行う特別な理由はありますか? そうでなければ、一時表を使用してIDを保管し、更新用にそれらをフェッチし、サブクエリーを使用して挿入することができます。
INSERT INTO history_table(id) (SELECT id from table WHERE column = 0);
UPDATE table SET column = 1 where column = 0;
だけhistory_tableのために更新されるIDを取得していると、あなたは正しい値にそれらを更新することができますこの方法。
ありがとう@jyncka私はまた、選択された行の列を値0から挿入時に1に変換する必要があるので、これを使用して演奏することをお勧めします。私はトランザクションが非アトミックであることは好きではありませんが、おそらくそれは大丈夫です。 – tgk
[すべてのアップデートを追加、削除、MySQLの新しいレコードにクエリを挿入](http://stackoverflow.com/questions/1697733/add-every-update-delete-insert-query-to-a) -new-record-in-mysql) – piyushj
変更する前にcolumn = 0の行をhistory_tableに保存する必要があります。履歴テーブルに他の行が含まれている場合は、pre_history_tableを使用してゼロに設定し、次にhistory_tableに挿入する必要があります。 – lit