3

シナリオは次のとおりです。

顧客が最初に注文したとき、テーブルは空です。このように見えます

+----+------+---------+
| no | item | results |
+----+------+---------+

注文するとテーブルはこんな感じ

+----+--------+---------+
| no | item   | results |
+----+--------+---------+
| 1  | Test 1 | null    |
| 2  | Test 2 | null    |
| 3  | Test 3 | null    |
+----+--------+---------+

それは簡単な部分です。クエリでカンマ区切りのVALUE句を使用できINSERTます。

注文はラボに送信され、ラボの担当者が作業を完了すると、テーブルは次のようになります。

+----+--------+---------+
| no | item   | results |
+----+--------+---------+
| 1  | Test 1 | Res 1   |
| 2  | Test 2 | Res 2   |
| 3  | Test 3 | Res 3   |
+----+--------+---------+

これがあなたの答えの出番です。結果でテストを更新する必要があります。UPDATE--SET--WHEREただし、テスト項目ごとに 1 つずつ、何十ものステートメントを実行することは避けたいと思います。他に方法はありますか?

4

4 に答える 4

1
INSERT INTO ... ON DUPLICATE KEY UPDATE

テーブルには一意のキーが必要です。単一行の更新よりも高速です。

于 2013-04-23T11:28:58.043 に答える
0

残念ながら (私の知る限り)、単一の SQL クエリで複数の一意の更新を行うことはできません。

1 つのクエリで複数の行を更新できますが、それぞれに同じ更新が適用されます。

各更新は、独自のステートメントとして実行する必要があります。

あなたの最善の策は、単一の行を更新するループを作成し、実行する必要がある更新ごとに実行することです。

于 2013-04-23T11:13:21.503 に答える