如果存在则更新列数据,否则在 mysql 查询中保持不变
Posted
技术标签:
【中文标题】如果存在则更新列数据,否则在 mysql 查询中保持不变【英文标题】:update column data if present else keep unmodified in mysql query 【发布时间】:2013-06-17 07:16:29 【问题描述】:如果存在,mysql 更新所有列数据,否则在 mysql 查询中保持不变
我有一个列名 'gender' ,它有 4 条记录,其中 2 男 1 女。 我当时在更新查询中使用案例交换了性别,一条记录是空白的,没有性别,但根据书面查询更新为男性。
我想要哪个性别是空白的,它不会更新它会保持原样,并且存在性别数据的地方它将交换性别。
提前致谢
【问题讨论】:
Andddd 查询所在? 更新用户设置性别 = 性别 = '男性' 然后 '女性' 否则 '男性' 结束 【参考方案1】:试试这个
update user set gender = case when gender = 'Male' then 'Female' when gender='Female' then 'Male' else '' end
【讨论】:
它工作正常感谢信息,但如果我们采取另一种情况它不会像数据在性别字段中“测试”那样工作,它不是一个通用的解决方案,在这种情况下如何检查数据和不变... 没听懂,请详细说明一下。 让我们假设一个表用户有两个字段 id 和 city。表名:用户 ID City 1 pune,mumbai 2 hyderabad,pune 3 solapur 4 jammu,mumbai 在这里我想用破折号(-)更新分号(;),如果分号不存在则数据不变。在这方面帮助我.... 别写 else 部分 城市字段是动态的我应该如何知道城市字段是否包含分号,如果它存在然后用破折号替换,否则保持数据不变。能否请您详细说明一下,以便我能很好地理解【参考方案2】:只需像这样处理另一个case when ...
:
update user set gender = case when gender = 'Male' then 'Female' when gender = 'Female' then 'Male' else '' end
【讨论】:
它给出了语法错误,因为你在 else 条件 '' 中没有提供数据。 您的 SQL 语法有误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '' 附近使用正确的语法以上是关于如果存在则更新列数据,否则在 mysql 查询中保持不变的主要内容,如果未能解决你的问题,请参考以下文章