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

如何修改MySQL查询以隐藏cota列值为paga的行?

解决SQL中排除cota为"paga"行的问题

嘿,我一眼就发现问题所在啦!你之前加的AND cota NOT IN(paga)没生效,核心原因是字符串常量没加引号——在SQL里,像"paga"这种字符串值必须用单引号(或者双引号,不过单引号是SQL标准写法,兼容性更好)括起来,不然数据库会把paga当成一个列名来解析,自然找不到对应数据,过滤也就失效了。

给你两种可行的修改方案,按需选择:

方案1:用NOT IN(适合排除多个值的场景)

如果以后你需要排除多个值(比如"paga"、"pendente"),NOT IN会更方便,修改后的完整SQL如下:

SELECT DATE_FORMAT(nascimento, '%d-%m-%Y') as 'nascimento', 
       `first_name`, 
       `last_name`, 
       `name_completo`, 
       `cota` 
FROM `socios` 
WHERE MONTH(nascimento) = MONTH(NOW()) 
  AND cota NOT IN ('paga') 
ORDER BY nascimento ASC;

方案2:用<>(不等于,适合单个值的场景)

如果只是要排除"paga"这一个值,用<>会更简洁直观:

SELECT DATE_FORMAT(nascimento, '%d-%m-%Y') as 'nascimento', 
       `first_name`, 
       `last_name`, 
       `name_completo`, 
       `cota` 
FROM `socios` 
WHERE MONTH(nascimento) = MONTH(NOW()) 
  AND cota <> 'paga' 
ORDER BY nascimento ASC;

额外提醒

如果你的cota列可能存在NULL值,那NOT IN和<>都会把NULL的行过滤掉(因为NULL和任何值比较的结果都是UNKNOWN,不会被包含在条件里)。如果需要保留cota为NULL的行,可以把条件改成:

AND (cota <> 'paga' OR cota IS NULL)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:54:05