You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL统计单条记录列非空值 筛选不符合SPNR要求的记录

MySQL 筛选不符合有效SP数量记录的方案

首先注意你提供的表结构存在笔误:表头重复定义了两次SP2,最后一个SP字段实际应为SP3,以下方案按SP1、SP2、SP3三个SP字段进行处理。

你要的效果可以直接通过单行条件判断相加实现,MySQL中布尔判断的结果会默认转为1(符合条件)/0(不符合条件),相加后的值就是当前记录的有效SP总数,和SPNR比较即可筛选出不符合要求的记录:

SELECT * 
FROM 你的表名
WHERE (SP1 = 'x') + (SP2 = 'x') + (SP3 = 'x') < SPNR;

逻辑说明

  • 每个(SPx = 'x')判断如果SP字段值为x则返回1,否则返回0,三个值相加的结果就是这条记录实际的有效SP数量
  • 筛选条件实际有效数 < 要求数量SPNR刚好匹配你的需求,执行后会返回ID为02、03、04的三条不符合要求的记录。

空值兼容调整

如果你的SP字段可能存储NULL而非空字符串,可改用IF函数明确判断:

SELECT * 
FROM 你的表名
WHERE IF(SP1 = 'x',1,0) + IF(SP2 = 'x',1,0) + IF(SP3 = 'x',1,0) < SPNR;

内容的提问来源于stack exchange,提问作者Ismael Roque

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 03:06:04