mysql - 使用 MAX 函数将 NULL 转换为有意义的值 - mySQL
问题描述
谁能帮我解决一下 mySQL 中令人难以置信的令人沮丧的代码行。
这是此案例的延续:使用案例“透视”键|值表返回空白列... mySQL
该示例中提供的代码有效,但现在我正在投入生产,有一条线我无法正常工作。我怀疑这是由于 max 子句中的 NULL 值,但我不确定如何解决。
我希望麻烦的线是:
MAX(case when `meta_key`='key1' and (`meta_value`='Validated' or `meta_value` is null) then 'Validated' else 'Not Validated' end) as `key1`
即,NULL = 已验证;已验证 = 已验证;其他任何内容 = 未验证。
更新
问题似乎null
不是由值为空的相应键|值引起的,而是由于该用户没有对应的键|值对。这会产生奇怪的结果。
解决方案
以下似乎可以按您的意愿工作:
IFNULL(MAX(CASE WHEN `meta_key`='key1' AND `meta_value`<>'Validated' THEN'Not Validated' END),
'Validated') as `key1`
我在这里颠倒了您的逻辑,因此任何具有key1
未验证值的东西都将返回Not Validated
,其他任何东西都将返回NULL
。然后我用sIFNULL()
替换所有NULL
Validated
推荐阅读
- c# - 带有 Postgres 的 .NET Core 应用程序在本地运行良好,在暂存/生产中无法按预期工作
- apache-spark - 偶尔不会清理 HDFS 上的 .sparkStaging 目录
- android - 信号 11 (SIGSEGV),代码 1 (SEGV_MAPERR) libwebviewchromium.so
- r - 如何从日期中获取双周/双周数字?
- django - uwsgi worker在重生后保持空闲
- openstreetmap - 为什么我自己的立交桥服务器中的区域查询返回的结果与官方服务器不同?
- c# - 直接实例化 Npgsql.EntityFrameworkCore.PostgreSQL 的 DbContext
- python - 如何将 python 中的图像调整为灰度低分辨率,如 MNIST 时尚数据?
- javascript - 如何使用 Javascript/Typescript 在 GitHub 和 npm 上创建我的第一个库
- python - Python3:快速将字节解码为有符号整数,特殊编码