MySQL where 条件意外行为

问题描述 投票:0回答:0

我有以下简化的查询,它没有多大意义,但它很好地代表了问题:

SELECT `Work_Activity_Excl`, count(`Work_Activity_Excl`)
FROM  `kpi_2023_mtt_detail`
WHERE `Work_Activity_Excl` = 0
group by `Work_Activity_Excl`;

在“where”语句中,它过滤掉除0之外的所有内容。 仍然在结果中我得到 0 和 1 值的值:

这怎么可能???

这是在

kpi_2023_mtt_detail
视图中生成“Work_Activity_Excl”列的代码:

(case when (`b`.`Work_Activity` in ('Újrakábelezés','Self berendezés beüzemelés')) Then 1 else 0      end) as `Work_Activity_Excl`

我的 MySQl8.32 服务器版本和 Workbench 8.028 都在 Windows 上运行。

我已经尝试用简单的 0 和 1 值的并集替换 FROM 语句中的视图,在这种情况下它起作用了,但是我在生成

Work_Activity_Excl
列的语句中遗漏了什么?

感谢您的帮助。

mysql select where-clause
© www.soinside.com 2019 - 2024. All rights reserved.