1

UPDATEステートメントを使用して複数行のデータを効率的に更新する方法を知りたいです。以下のような複数のレコードを挿入できることはわかっています。

INSERT INTO example
  (example_id, name, value, other_value)
VALUES
  (100, 'Name 1', 'Value 1', 'Other 1'),
  (101, 'Name 2', 'Value 2', 'Other 2'),
  (102, 'Name 3', 'Value 3', 'Other 3'),
  (103, 'Name 4', 'Value 4', 'Other 4');

しかし、更新でどのように機能するのか、またはクエリをループして 1 つずつ更新する必要がある場合はどうでしょうか。

現時点では、各ステートメントforeachをループして更新するために使用する必要があります。SQL

foreach() {
    // update statement....
    // and execute the query
}
4

3 に答える 3

1
  $data = array(
    array(
        100, 
        'Name 1',
        'Value 1', 
        'Other 1'
    ),
    array(
        101, 
        'Name 2', 
        'Value 2', 
        'Other 2',
    )
    array(
        102, 
        'Name 3', 
        'Value 3',
        'Other 3'
    )

)

for($i = 0; $i < count($data); $i++) {

for($j= 0; $j< count($data[$i]); $j++) {
    $field1 = $data[$i][$j];
    $field2 = $data[$i][$j];
    $filed3 = $data[$i][$j];
    $field4 = $data[$i][$j];
        query("UPDATE TABLE SET.... WHERE id = $field1");

}
}
于 2013-07-27T03:56:36.090 に答える
1

更新を無効にする場合は大文字と小文字を使用できます。

例:

UPDATE users
    SET value = CASE 
        WHEN id in (1,4) THEN 53
        WHEN id = 2 THEN 65
        WHEN id in (3,5) THEN 47
    END
WHERE id IN (1,2,3,4,5)

詳細については、これこれを参照してください。

于 2013-07-27T03:59:15.587 に答える