我遇到的问题是使用具有7种类型值的策略浏览器游戏。问题如下:
$_POST
中有7个不同的值,从索引unit_1到index unit_7包含。这7个值是0到20之间的INTEGERS,并且不是静态的。他们可以在每次调用页面时。它们代表发送的单位数量。"nameUnit" = "Soldier"
&& nbUnit = "0"
,"nameUnit" = "Mage"
&& nbUnit = "5"
等等。我想做的例子:
UPDATE x SET nbUnit = $_POST['u1'] WHERE nameUnit = "Soldier", nbUnit = $_POST['u2'] WHERE nameUnit = "Mage" [...]
是否可以这样做,可以在一个查询中完成吗?
答案 0 :(得分:1)
这个工作在你的情况下
UPDATE x
SET nbUnit = $_POST['u1']
WHERE (nameUnit = "Soldier" AND nbUnit = $_POST['u2']) OR
(nameUnit = "Mage" AND nbUnit= $_POST['u5'])
答案 1 :(得分:0)
在PL SQL中,您可以执行以下操作:
UPDATE x SET nbUnit = case when nameUnit = "Soldier" then $_POST['u1']
when nameUnit = "Mage" then $_POST['u2'] else nbUnit end;