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

如何用单条MySQL查询按固定Cat值优先筛选Active=1的数据?

单条SQL实现分类下按Active状态返回数据

直接上满足需求的SQL语句,核心利用IF函数结合EXISTS子查询实现逻辑判断:

SELECT Cat, User, Active
FROM your_table
WHERE Cat = '目标分类'
  AND Active = IF(
    EXISTS(SELECT 1 FROM your_table WHERE Cat = '目标分类' AND Active = 1),
    1,
    0
  );

逻辑说明

  1. 通过EXISTS子查询快速判断目标分类下是否存在Active=1的记录:
    • 若存在,IF函数返回1,WHERE条件会筛选出该分类下所有Active=1的行;
    • 若不存在,IF函数返回0,则筛选出该分类下所有Active=0的行。

简化写法

如果不想重复输入目标分类值,可借助MySQL用户变量优化:

SET @target_cat = '目标分类';
SELECT Cat, User, Active
FROM your_table
WHERE Cat = @target_cat
  AND Active = IF(
    EXISTS(SELECT 1 FROM your_table WHERE Cat = @target_cat AND Active = 1),
    1,
    0
  );

注意将your_table替换为你实际的表名,'目标分类'替换为要查询的具体分类值即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 15:27:02