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

MySQL中可用于数据过滤的函数有哪些?使用ORDER BY无效

MySQL数据过滤的正确用法

你混淆了排序和过滤的作用:ORDER BY是用来对查询结果进行排序的,而不是过滤数据。要筛选符合条件的数据,需要用以下这些语句和操作符:

一、基础行过滤:WHERE 子句

这是最常用的数据过滤方式,在查询时直接筛选符合条件的行:

  • 单条件示例:从users表中筛选年龄大于18的用户
    SELECT * FROM users WHERE age > 18;
    
  • 多条件组合:用AND/OR组合多个条件
    SELECT * FROM users WHERE age > 18 AND country = 'China';
    

二、聚合结果过滤:HAVING 子句

如果需要对GROUP BY聚合后的结果进行过滤,必须用HAVING(WHERE无法处理聚合函数的结果):

  • 示例:统计每个国家的用户数量,只保留用户数超过100的国家
    SELECT country, COUNT(*) AS user_count
    FROM users
    GROUP BY country
    HAVING user_count > 100;
    

三、常用过滤操作符与函数

  • 模糊匹配:LIKE,支持通配符%(任意字符)和_(单个字符)
    SELECT * FROM users WHERE name LIKE '李%'; -- 匹配所有姓李的用户
    
  • 范围筛选:BETWEEN...AND,匹配指定区间内的值
    SELECT * FROM users WHERE age BETWEEN 20 AND 30;
    
  • 集合匹配:IN,匹配指定集合中的值
    SELECT * FROM users WHERE country IN ('China', 'USA', 'Germany');
    
  • 空值判断:IS NULL/IS NOT NULL,处理字段为空的情况
    SELECT * FROM users WHERE phone IS NULL; -- 筛选未填写手机号的用户
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 10:10:13