我想要做的是切换数据库中记录的值。这是一个例子:
+--------------+--------- +-------------------+
|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') 的类型,不可能更改为这两个值之外的其他值。
最佳答案
这只会更改两个字符串:
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');
关于mysql - 切换数据库中的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40841165/