使用不同的where条件mysql一次更新所有行

Posted

技术标签:

【中文标题】使用不同的where条件mysql一次更新所有行【英文标题】:update all rows at once with different where condition my sql 【发布时间】:2015-09-21 13:20:58 【问题描述】:

我有一个表名详细信息,其中有两列。第一个是名字,第二个是性别。该表包含大约 50 个姓名和性别男性/女性条目。我正在尝试根据人的性别更新包含男性和女性的性别列。我想要做的是改变性别=男性到女性和女性到男性的数据

这是我尝试过的查询:

UPDATE details 
SET    gender = 'm', 
       gender='f' 
WHERE  gender = 'm'; 

【问题讨论】:

我尝试了一个 where 条件,但它全部变为女性。 更新详情 set gender = 'm', gender='f' where gender = 'm'; 【参考方案1】:

如果您需要它在一个语句中,请尝试使用 CASE 语句代替:

UPDATE  Details 
SET     Gender = CASE WHEN Gender = 'm' THEN 'f' ELSE 'm' END 
WHERE   Gender IN ('m', 'f')

【讨论】:

以上是关于使用不同的where条件mysql一次更新所有行的主要内容,如果未能解决你的问题,请参考以下文章

MySQL ------ 更新数据(UPDATE)(二十一)

MySQL ------ 更新数据(UPDATE)(二十一)

Laravel 在使用 where 条件和更新时提供不同的结果

MySql 视图

具有多个 WHERE 和 SELECT 条件的更新 - MySql

带WHERE子句的UPDATE语句