我想知道是否可以合并这两个查询。
我的桌子看起来像这样:
------------------------------------
| id | server | domain | status |
------------------------------------
| 1 | serv1 | serv1.az | 0 |
| 2 | serv2 | serv2.lo | 0 |
| 3 | serv2 | servNEW | 1 |
| 4 | serv3 | serv.as | 0 |
------------------------------------
我做了这两个查询以更新列:
UPDATE `table` SET `server` = ? WHERE `server` = ?
UPDATE `table` SET `domain` = ? WHERE `domain` = ?
例如:
UPDATE `table` SET `server` = `serv1_NEW` WHERE `server` = `serv1`
UPDATE `table` SET `domain` = `serv1NEW` WHERE `domain` = `serv1.az`
编辑:
更正的语法错误
UPDATE `table` SET `server` = `serv1_NEW` WHERE `server` = 'serv1'
UPDATE `table` SET `domain` = `serv1NEW` WHERE `domain` = 'serv1.az'
答案 0 :(得分:1)
在简单的情况下,您可以使用CASE statement。例如:
UPDATE `table` SET
`server`= CASE
WHEN `server` = 'serv1' THEN `serv1_NEW`
ELSE `server`
END,
`domain`= CASE
WHEN `domain` = 'serv1.az' THEN `serv1NEW`
ELSE `domain`
END
WHERE `server` = 'serv1' OR `domain` = 'serv1.az'
但是两个单独的查询是您任务的更清晰解决方案