[英]Update multiple rows with one query php
我有一張這樣的表:
optionId - optionName - optionValue
1 paypalEnv // empty right now
2 paypalClientId // empty right now
3 paypalSecret // empty right now
我想用這樣的 1 個查詢更新所有行:UPDATE options SET paypalEnv = ?, paypalClientId = ?, paypalSecret = ?
我猜您正在尋找以下查詢:
UPDATE options SET optionValue = CASE
WHEN optionName = 'paypalEnv' THEN value1
WHEN optionName = 'paypalClientId' THEN value2
WHEN optionName = 'paypalSecret' THEN value3
ELSE optionValue
END
WHERE optionId in (1,2,3)
你也可以用這個替換 WHERE 子句:
WHERE optionName in ('paypalEnv','paypalClientId','paypalSecret')
或者,更簡單地...
UPDATE options SET optionValue =
CASE optionName
WHEN 'paypalEnv' THEN value1
WHEN 'paypalClientId' THEN value2
WHEN 'paypalSecret' THEN value3
ELSE optionValue
END
WHERE optionId in (1,2,3)
如果(optionId, optionName)
上有 UNIQUE 或 PRIMARY KEY,則可以使用 IODKU:
INSERT INTO options (optionId, optionName, optionValue) VALUES
(1, 'paypalEnv', ?)
(2, 'paypalClientId', ?)
(3, 'paypalSecret', ?)
ON DUPLICATE KEY UPDATE
optionId = VALUES(optionId),
optionName = VALUES(optionName),
optionValue = VALUES(optionValue)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.