【问题标题】:Evaluating truthy values [duplicate]评估真实值[重复]
【发布时间】:2017-02-19 03:23:42
【问题描述】:

我想说的是:

 if field_1 then set field_2 = 1

意思是,如果 field_1 持有真实值,则执行其他操作。 sql中的IF语句可以执行这种求值吗?

【问题讨论】:

  • 如果field_1 是假的,field_2 应该设置为什么?
  • @RocketHazmat 我想我的问题只是与我是否可以做出真实的评估有关,而不是 if then else 语句的语法。
  • 你可以试试IF() function。比如:SET field_2 = IF(field_1, 1, 0).
  • @RocketHazmat 很有趣,我现在去看看。
  • 你刚刚尝试过简单的谷歌搜索吗?有很多结果! :)

标签: mysql truthiness


【解决方案1】:

如果 CASE WHEN 为真,则使用 CASE WHEN THEN 并将 field2 设置为 1,否则使用 ELSE 将 field2 设置为之前的值。

UPDATE table 
SET field2 = CASE
WHEN field1 IS NOT NULL 
THEN 1
ELSE field2
END;

【讨论】:

  • 这是一个非常好的方法,我对 IS NOT NULL 很熟悉,所以我猜你无法做出真实的评估?
  • 在 mysql @JosephErickson 中除了 null 之外的一切都是真的
  • @JosephErickson 如果您不想检查字符串true1,只需将is not null 替换为=1='true'
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-24
  • 1970-01-01
  • 1970-01-01
  • 2016-08-25
  • 1970-01-01
  • 2017-04-28
  • 2021-09-01
相关资源
最近更新 更多