簡體   English   中英

使用一個查詢 php 更新多行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM