java
1.通过一个中间容器temp交换
2.+ - -
3.^ ^ ^
如果是两个字符,可以将字符转化成字符的ASCII码 然后转成字符
SQL
交换两个值(仅限int和char(1))
因为业务需要将用户表中的sex转换(前提只存了两种 男,女)
UPDATE user set sex = 0 ^ 1 ^ sex
或者
UPDATE user
SET
sex = CASE sex
WHEN 1 THEN 0
ELSE 1
END;
需要设置 sql安全模式 SQL_SAFE_UPDATES=0;
如果数据库中是两个字符 男人 m(man) 女人w(woman)可以转化成ASCII码,然后在转化成字符
UPDATE salary set sex = char(ascii('m') ^ ascii('w') ^ ascii(sex));
ASCII(str)返回字符串str的最左字符的数值。返回0,如果str为空字符串。返回NULL,如果str为NULL。 ASCII()返回数值是从0到255
CHAR()解释每个参数n为整数,并返回由这些给出的字符串的字符的代码整数值。如遇NULL值则跳过。