Thứ Sáu, 8 tháng 1, 2016

Update Multiple Rows với nhiều Values trong 1 câu query

Có thế dùng PHP với cấu trúc:

foreach ($display_order as $id => $ordinal) {
    $sql = "UPDATE categories SET display_order = $ordinal WHERE id = $id";
    mysql_query($sql);
}

Kết quả sẽ vẫn như ý của bạn. Tuy nhiên với cấu trúc câu SQL như sau:

UPDATE categories
    SET display_order = CASE id
        WHEN 1 THEN 3
        WHEN 2 THEN 4
        WHEN 3 THEN 5
    END,
    title = CASE id
        WHEN 1 THEN 'New Title 1'
        WHEN 2 THEN 'New Title 2'
        WHEN 3 THEN 'New Title 3'
    END
WHERE id IN (1,2,3)


** categories: Tên table
** display_order, title: cột cần chỉnh sửa
** id: cột điều kiện

Bạn sẽ được kết quả như câu lệnh PHP