在 MySQL 中,您可以使用 CASE 語句根據特定條件更新表格條目。操作方法如下:
您有以下查詢:
update ae44 set Price = Case when ID = 'AT259793380' then '500' when ID = 'AT271729590' then '600' when ID = 'AT275981020' then '700' end case
您的目標是根據以下內容批次更新清單價格對應的ID。但是,查詢沒有傳回預期結果。
要修正查詢,您需要正確使用 CASE 語句。正確的語法如下:
UPDATE ae44 SET price = CASE WHEN ID = 'AT259793380' THEN '500' WHEN ID = 'AT271729590' THEN '600' WHEN ID = 'AT275981020' THEN '700' END
請注意,此查詢會將具有其他 ID 的記錄的價格更新為 NULL。
如果您願意僅更新清單中的ID 並排除空更新,您可以使用以下命令查詢:
UPDATE ae44 JOIN ( SELECT 'AT259793380' AS oldval, '500' AS newval UNION ALL SELECT 'AT271729590' AS oldval, '600' AS newval UNION ALL SELECT 'AT275981020' AS oldval, '700' AS newval ) q ON ae44.id = q.oldval SET price = q.newval
此查詢只會更新使用UNION ALL 語句所建立的暫存表中指定的ID 的價格。
以上是如何使用 CASE 批次更新具有條件值的 MySQL 條目?的詳細內容。更多資訊請關注PHP中文網其他相關文章!