PHP / MySQL:UPDATE将值乘以WHERE的倍数

时间:2018-05-11 13:19:43

标签: php mysql sql

我遇到的问题是使用具有7种类型值的策略浏览器游戏。问题如下:

  1. 我在$_POST中有7个不同的值,从索引unit_1到index unit_7包含。这7个值是0到20之间的INTEGERS,并且不是静态的。他们可以在每次调用页面时。它们代表发送的单位数量。
  2. 我在表格中有7行没有遵循相同的架构:"nameUnit" = "Soldier"&& nbUnit = "0""nameUnit" = "Mage"&& nbUnit = "5"等等。
  3. 我需要对1个请求中的单元数进行更新,但我不知道如何执行此操作。
  4. 我想做的例子:

    UPDATE x SET nbUnit = $_POST['u1'] WHERE nameUnit = "Soldier", nbUnit = $_POST['u2'] WHERE nameUnit = "Mage" [...]
    

    是否可以这样做,可以在一个查询中完成吗?

2 个答案:

答案 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;