更新列数据(如果存在),否则在mysql查询中保持不变

更新列数据(如果存在),否则在mysql查询中保持不变,mysql,Mysql,Mysql更新所有列数据(如果存在),否则在Mysql查询中保持不变 我有一个列名“性别”,它有4个记录,2个男性和1个女性。 我在更新查询中交换了性别用例,当时有一条记录是空白的,没有性别,但根据写入的查询,它被更新为男性 我想要的是哪种性别是空白的,它不会更新,它将保持原样,如果存在性别数据,它将交换性别 提前感谢如果…像这样,请用另一个案例来处理: update user set gender = case when gender = 'Male' then 'Female' when g

Mysql更新所有列数据(如果存在),否则在Mysql查询中保持不变

我有一个列名“性别”,它有4个记录,2个男性和1个女性。 我在更新查询中交换了性别用例,当时有一条记录是空白的,没有性别,但根据写入的查询,它被更新为男性

我想要的是哪种性别是空白的,它不会更新,它将保持原样,如果存在性别数据,它将交换性别


提前感谢

如果…像这样,请用另一个
案例来处理:

update user set gender = case when gender = 'Male' then 'Female' when gender = 'Female' then 'Male' else '' end
试试这个


updateuser set gender=case when gender='Male'然后'Female'when gender='Female'然后'Male'else'结束时,更新user set gender=case when gender='Male'然后'Female'else'Male'结束时,它给出语法错误,因为u在else条件下没有提供数据“”。您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,在第1行的“”附近使用正确的语法。它工作正常,感谢您提供的信息,但如果我们采用另一种方案,它不是通用的解决方案。它不会像性别字段中的数据是“测试”一样工作,在这种情况下,如何检查数据并保持不变……您没有理解,请详细说明一下。让我们假设一个表用户有两个字段id和city。表名:用户Id城市1浦那,孟买2海得拉巴,浦那3索拉普尔4查谟,孟买这里我想用破折号(-)更新半圆形(;),如果半圆形不存在,则数据不变。在这方面请帮助我…不要写else部分城市字段是动态的,我如何知道城市字段是否包含semicoln(如果存在),然后用破折号替换,否则保持数据不变。你能详细解释一下我的疑问吗?这样我就能很好地理解了