我想要做的是切换数据库中记录的值。这是一个例子:
+--------------+--------- +-------------------+
|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')的类型,它不可能更改为其他值,然后这两个。
答案 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');