MySQL:CASE 语句问题

标签 mysql

我有一行 MySQL,我想在其中使用 CASE 语句。但是,我认为我做得不对。我需要检查标志是否设置为特定值,然后根据设置的内容更新该标志。这是我的 MySQL:

$sql = 'UPDATE 表 SET 标志 = CASE WHEN 标志 = 2 THEN 0 ELSE 标志 = 3'

这是有效的 SQL 吗?我想要做的是,如果标志设置为值 2,则将其设置为 0,否则将其设置为 3。如何修复我的 SQL,使其执行此操作?

最佳答案

您当前的查询非常接近,代码将是:

UPDATE table 
SET flag = CASE WHEN flag = 2 THEN 0 ELSE 3 END

flag 等于 2(如果是)时,这会将 flag 列更新为 0不等于2,则该值将更新为3

关于MySQL:CASE 语句问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15485371/

相关文章:

mysql - 按用户聚合时间戳月份

PHP 按钮删除 MYSQL 表输出中的一行

c# - 使用 MySQL 和 Entity Framework 的 ASP.NET 标识

Mysql连接几行

mysql - SQLAlchemy 动态覆盖反射列

MySQl 查询给出错误结果

php - 如果文本框为空,请选择选项并插入到表中

mysql - 在本地开发服务器上升级 phpmyadmin

php - 如何在 php 中显示 blob 类型的图像?

mysql - "1215 - cannot add foreign key constraint"