You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL中如何互换列值?male与female互相替换的查询方法

MySQL 互换 gender 列中 male 和 female 值的正确方法

你之前出错的原因很明确:如果分两次执行更新(先把male改成female,再把female改成male),第一次更新后原本的male会变成female,第二次更新时所有female(包括原有的和刚修改的)都会被改成male,最终所有值都成了male。

正确的做法是一次性完成双向替换,用单条UPDATE语句通过条件判断实现,避免中间状态的干扰。

方法一:使用 CASE WHEN 语句

适合需要处理多种取值的场景,能保留非male/female的原始值:

UPDATE your_table_name
SET gender = CASE 
    WHEN gender = 'male' THEN 'female'
    WHEN gender = 'female' THEN 'male'
    ELSE gender -- 如果有其他性别取值(比如NULL),保留原内容
END;

方法二:使用 IF 函数

逻辑更简洁,适合只有male和female两种取值的情况:

UPDATE your_table_name
SET gender = IF(gender = 'male', 'female', 'male');

重要提醒

  • 执行更新前,建议先运行SELECT语句验证结果是否符合预期:
SELECT 
    gender,
    CASE WHEN gender = 'male' THEN 'female' WHEN gender = 'female' THEN 'male' ELSE gender END AS new_gender
FROM your_table_name;
  • 操作前务必备份数据,避免误操作导致数据丢失。

内容的提问来源于stack exchange,提问作者phpstarter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 19:45:32