[英]Multiple mysql updates in single query
我有一個名為member_photos
的表,該表存儲member_id
, photo_id
, photo_dir
和photo_name
,當有人編輯他的照片時,它發布了有關照片的數組信息,發布的頁面具有包含照片信息的數組,但是我的問題是我使用了foreach循環並更新了每個一張一張地合影
UPDATE member_photos
SET photo_name = '$newphotoname'
WHERE photo_id = '$photoid'
可以,但是當這個人有20張照片時,數組有20個項目,因此循環將執行20個查詢。 有什么方法可以通過一次查詢更新所有照片?
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)
在PHP中
// An array containing the category ids as keys and the new positions as values
$display_order = array(
1 => 4,
2 => 1,
3 => 2,
4 => 3,
5 => 9,
6 => 5,
7 => 8,
8 => 9
);
$ids = implode(',', array_keys($display_order));
$sql = "UPDATE categories SET display_order = CASE id ";
foreach ($display_order as $id => $ordinal) {
$sql .= sprintf("WHEN %d THEN %d ", $id, $ordinal);
}
$sql .= "END WHERE id IN ($ids)";
echo $sql;
此信息的資源: http : //www.karlrixon.co.uk/writing/update-update-multiple-rows-with-different-values-and-a-single-sql-query/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.