1

同様の質問がいくつか見つかりましたが、障害を乗り越えられるものはありませんでした。(これはMySQLで「存在しない場合に挿入する」方法に近いですか? )

1 つのテーブルから 1 つを除くすべての ID を読み取り、それらを使用して別のテーブルを更新する必要があります。宛先テーブルには 2 つの列があります。それらの列の 1 つはその外部 ID でなければなりません。もう一方の列を、クエリにハード コードした数値にしたい。

このような:

letter_id drop_letter_id
10        99

アプリケーションで何が起こるかというと、誰かがレター 10 をサブスクライブすると、レター 99 からサブスクライブが解除されます。99 は、他のものをサブスクライブしていない人だけのものにしたいので、99 以外のすべてのレター ID を見つける必要があります。そして、それらをこのドロップテーブルに次のように追加します

letter_id drop_letter_id
x        99
y        99

ここで、x と y はその他の文字 ID 番号です。

みたいな

SELECT letter_id FROM letters WHERE letter_is<>99

その後

INSERT IGNORE INTO letter_drops (x,99)...
4

1 に答える 1

1

私が正しく得た場合、それは次のとおりです。

INSERT IGNORE INTO letter_drops SELECT letter_id, 99 FROM letters WHERE letter_id!=99
于 2013-10-04T18:19:16.280 に答える