Php 如果行没有';更新多行时是否不存在?

Php 如果行没有';更新多行时是否不存在?,php,mysql,case,insert-update,Php,Mysql,Case,Insert Update,我有一个MySQL查询,如下所示: UPDATE `Table` SET `Column` = CASE WHEN `Option Id` = '1' THEN 'Apple' WHEN `Option Id` = '2' THEN 'Banana' WHEN `Option Id` = '3' THEN 'Q-Tip' END Option Id | Column 1 | x 2 |

我有一个MySQL查询,如下所示:

UPDATE `Table` SET `Column` = 
    CASE 
      WHEN `Option Id` = '1' THEN 'Apple'
      WHEN `Option Id` = '2' THEN 'Banana'
      WHEN `Option Id` = '3' THEN 'Q-Tip'
    END 
Option Id | Column
        1 |      x
        2 |      x
“我的表”当前看起来如下所示:

UPDATE `Table` SET `Column` = 
    CASE 
      WHEN `Option Id` = '1' THEN 'Apple'
      WHEN `Option Id` = '2' THEN 'Banana'
      WHEN `Option Id` = '3' THEN 'Q-Tip'
    END 
Option Id | Column
        1 |      x
        2 |      x
我希望它能导致:

Option Id | Column
        1 |  Apple
        2 | Banana
        3 |  Q-Tip
但它不会插入Q-Tip行。我已经查阅并阅读了一些关于重复键更新时插入的
替换的内容,但是我找不到一种方法让它们使用
大小写来处理这一多行更新。我是否必须为每一行编写一个单独的查询来实现这一点,或者在MySQL中有一种很好的方法来实现这一点

选项Id
不是
键本身,而是
主键的一部分

编辑更多信息:

我在用PHP编程,本质上是为用户存储一个数组<代码>选项Id
是键,
是值。因此,为了简单起见,我的桌子可能看起来像:

User Id | Option Id | Value
     10 |         1 | Apple
     10 |         2 |  Shoe
     11 |         1 |  Czar
...

该用户可以轻松地更新数组中的元素并添加新元素,然后
将该数组发布到服务器,在这种情况下,我希望将其存储在表中。上面我的查询更新了它们编辑过的所有数组元素,但它不会插入新的数组元素。我想知道是否有一个查询可以从
POST
获取我的数组并将其插入表中,而不必编写循环并对每个数组元素进行查询。

当然它不会插入。因为没有这样的值,所以无法更新它

我假设您正在通过输入已经存在的值来规范化数据库,现在希望为每个有效值添加所需的映射


所以最好从头开始,只做插入。

您可以随时查询数据库中的条目,然后根据您的结果选择更新或插入。

我认为这样的更新没有意义。

为什么没有一个单独的带有选项Id和相应值的表,在这个表中只留下链接到用户Id的选项Id?

如果
option\u Id
是主键,这应该可以工作:

REPLACE INTO `Table` (`Option_Id`, `Column`) VALUES
(1, 'Apple'),
(2, 'Banana'),
(3, 'Q-Tip');

该语句的意思是:如果PK已经存在,则插入给定的行或替换值。

您案例中的ID与期望的结果不匹配,拼写错误?是的,这是一个拼写错误,感谢您指出:)感谢您的回复,我非常感谢。我在问题中添加了一些附加信息。我的目标是尽可能避免将查询放入php循环中。谢谢!我不知道插入多行的语法。它成功了!