切换数据库

时间:2016-11-28 09:40:52

标签: mysql

我想要做的是切换数据库中记录的值。这是一个例子:

+--------------+--------- +-------------------+
|ingredient_id | quantity | preferred_measure |
+--------------+----------+-------------------+
|           40 |     5.00 | tbsp              |
|           28 |     5.00 | tsp               |
+--------------+----------+-------------------+

我想要做的是更改preferred_measure,然后将它们切换为如下所示:

+--------------+--------- +-------------------+
|ingredient_id | quantity | preferred_measure |
+--------------+----------+-------------------+
|           40 |     5.00 | tsp               |
|           28 |     5.00 | tbsp              |
+--------------+----------+-------------------+

如果我只更改一个,那么我将为所有记录设置相同的值,并且我将无法找到需要更改为其他值的记录,因为所有记录都相同。

请记住,数据库中这些记录的计数是10k +。

为了澄清一点,preferred_measure是enum('tsp'。'tbsp')的类型,它不可能更改为其他值,然后这两个。

1 个答案:

答案 0 :(得分:1)

这只会改变两个字符串:

UPDATE YOUR_TABLE SET preferred_measure =
  IF(preferred_measure = 'tsp', 'tbsp',
    IF (preferred_measure = 'tbsp', 'tsp', preferred_measure)); 

您还可以使用WHERE来加速查询:

UPDATE YOUR_TABLE SET preferred_measure =
  IF(preferred_measure = 'tsp', 'tbsp',
    IF (preferred_measure = 'tbsp', 'tsp', preferred_measure))
WHERE preferred_measure IN('tbsp','tsp');