mysql 异或
sex 字段只有两个取值:'f' 和 'm' 。交换所有的 f 和 m 值(例如,将所有 f 值更改为 m,反之亦然)
方式一:异或
UPDATE salary SET sex = CHAR(ASCII(sex) ^ ASCII('m') ^ ASCII('f'));
两个相等的数异或的结果为 0,而 0 与任何一个数异或的结果为这个数。
sex 字段只有两个取值:'f' 和 'm',并且有以下规律:
'f' ^ ('m' ^ 'f') = 'm' ^ ('f' ^ 'f') = 'm'
'm' ^ ('m' ^ 'f') = 'f' ^ ('m' ^ 'm') = 'f'
因此将 sex 字段和 'm' ^ 'f' 进行异或操作,最后就能反转 sex 字段。
方式二:if
UPDATE salary SET sex = IF(sex = 'm', 'f', 'm');
方式三:CASE WHEN
UPDATE salary SET sex = CASE sex WHEN "m" THEN "f" ELSE "m" END;
方式四: ascii加减
UPDATE salary SET sex = CHAR(ascii('m') + ascii('f') - ascii(sex));
DROP TABLE IF EXISTS salary; CREATE TABLE salary ( id INT, NAME VARCHAR(100), sex CHAR(1), salary INT ); INSERT INTO salary (id, NAME, sex, salary) VALUES ('1', 'A', 'm', '2500'), ('2', 'B', 'f', '1500'), ('3', 'C', 'm', '5500'), ('4', 'D', 'f', '50000');
分类:
数据库 / MySQL
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律