首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL查询---COUNT函数

所以上一篇主要提到了几种可以优化分页的方案,而且分页业务一般都伴随着需要count函数查询总条数,所以本篇文章主要讲讲count函数的一般优化方案。 为什么分页一般要伴随查询数量?...函数查询条数的逻辑了,而是大部分分页往往伴随着需要查询总数量的业务。...因为Mysql官方文档写了这么一句话: InnoDB handles SELECT COUNT(*) and SELECT COUNT(1) operations in the same way....我个人建议使用count(*),因为SQL92标准中制定count(*)为标准统计行数的语法,所以Mysql一直在不断地对count(*)做一定的优化。那有人说count(id)效率会不会更高?...count函数指定where条件 这里一样得分两种情况:count(*)和count(col)。 count(*):where条件添加索引,就可以使用索引优化查询

3.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL系列(2)——聚合函数查询

    一、聚合函数查询 1.COUNT()函数——用来统计记录的条数; 例如查询grade表中有几条数据: 先看grade表中所有的数据:select * from grade; ?...总共9条数据,as total是给count(*)取别名; 2.SUM()函数——是求和函数,计算一列值的总和(此列必须是数值型数据); 例如查询grade表中张三的总分: select stuName...3.AVG()函数——求一列值的平均值的函数; 例如,查询表中张三的平均分: select stuName,avg(score) from grade where stuName='张三'; ?...4.MAX()函数——求一列值的最大值的函数 例如,查询表中张三score的最大值 select stuName,max(score) from grade where stuName='张三'; ?...二、GROUP BY分组查询 group by 常常与聚合函数一起使用 1.与COUNT(*)函数一起使用 例如:查询grade表中的记录条数,并按照姓名分组: select stuName,count

    1.6K30

    Mysql手册查询之常用函数大全

    (常用于GROUP BY从句的SELECT查询中) AVG(col)返回指定列的平均值 COUNT(col)返回指定列中非NULL值的个数 MIN(col)返回指定列的最小值 MAX(col)返回指定列的最大值...MySQL有4个函数是用来进行条件操作的,这些函数可以实现SQL的条件逻辑,允许开发者将一些应用程序业务逻辑转换到数据库后台。...如:SELECT NULLIF(1,1),NULLIF('A','B'),NULLIF(2+3,4+1); 和许多脚本语言提供的IF()函数一样,MySQL的IF()函数也可以建立一个简单的条件测试,这个函数有三个参数...在这种情况下,MySQL提供了CASE函数,它和PHP及Perl语言的switch-case条件例程一样。...为了进行数据类型转化,MySQL提供了CAST()函数,它可以把一个值转化为指定的数据类型。

    1.3K20

    mysql 联合查询_MySQL联合查询

    MySQL联合查询 联合查询:union,将多次查询(多条select语句)的结果,在字段数相同的情况下,在记录的层次上进行拼接。...执行如下 SQL 语句,进行测试: — 联合查询,默认去重 select * from class union distinct select * from class; — 联合查询,保留所有记录 select...特别地,联合查询只要求字段数相同,而跟类型无关。...意义 联合查询的意义有两种,分别为: 查询同一张表,按时需要不同,例如查询学生信息,要求男生按年龄升序排序,女生按年龄降序排序; 多表查询,多张表的结构是完全一样的,保持的数据结构也是一样的。...根据我们刚刚学到的联合查询,貌似很容易啊!

    18.8K30

    MySQL--查询和常用函数(知识点)

    desc降序|asc升序 10.1.1 全查询 语法: select 显示的字段列表 from 表名 全查询 10.1.2 条件查询(查询部分行) 语法: select 显示的字段列表 from 表名...1.1 聚合函数 统计: 统计数量: count(字段名) select count(*) from student; #效率最慢 这是对所有的字段进行统计得出来的结果 select count...by examDate having sumres<500; 当where和having同时在一条sql语句中存在的时候 执行顺序是where->group by ->having 1.2 地理位置函数...1.3 字符串函数 substring(字符串,开始位置,长度) select substring("hello重庆world",6,2); concat(字符串1,字符串2,...字符串n) select...adddate(now(),10) DAYOFWEEK(日期) 返回指定日期是星期几 1代表星期天 ---7表示星期六 select dayofweek('2022-09-11') 1.5 数学函数

    25020

    MySQL【二】---数据库查询详细教程{查询、排序、聚合函数、分组}

    条件查询 当数据量比较大的时候,千万别用 select * from student;会占用太多内存;因此采用条件查询; 2.1比较运算符 语法:select .... from 表名 where .....";  查询姓名中有 小的所有名字 select name from student where name like "%小%"; 结果和上述相同; 查询有两个字的名字:两个下划线 select name...*伦$";  2.4 范围查询(不连续查询) 查找年龄为12、18、34的名字 select name from student where age=12 or age=18 or age=34;...id desc;  前面相同情况下再看后续; 按照年龄从小到大,身高从高到矮; select * from student order by age asc, height desc;  4.聚合函数...总数count 查询男性有多少人 select count(*) as 男性人数 from student where gender=1; 最大值max,min通用 查询年龄最大的是谁 select

    2.1K20

    Mysql查询_mysql并发查询

    查询日志概念 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中...默认情况下,Mysql数据库并不启动慢查询日志,需要我们手动来设置这个参数,当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。...log-slow-queries :旧版(5.6以下版本)MySQL数据库慢查询日志存储路径。...开启了慢查询日志只对当前数据库生效,如果MySQL重启后则会失效。.../mysql/mysql06_slow.log 得到按照时间排序的前10条里面含有左连接的查询语句。

    17.7K20

    【0基础学习mysql】之DQL-聚合函数、分组查询及排序查询

    目录 一、聚合函数 1.常用聚合函数 2.实例 1.count 2.max   3.avg 4.sum  二、分组查询 1.语法 2.实例  三、排序查询 1.语法 2.实例 1.升序  2.降序 --...-- 一、聚合函数 将一列数据作为一个整体,进行纵向计算 1.常用聚合函数 函数 功能 count 统计数量 max 最大值 min 最小值 avg 平均值 sum 求和 语法: SELECT 聚合函数...age)VALUES (1,'张小三',18),(2,'李四',20),(3,'王老五',48),(4,'老六',18); SELECT sum(age) FROM user; 执行结果  二、分组查询...WHERE不能对聚合函数进行判断,而HAVING可以 2.实例 举例 分别统计表user不同年龄人的个数 代码 INSERT INTO user(id,name,age)VALUES (1,'张小三',...18),(2,'李四',20),(3,'王老五',48),(4,'老六',18); SELECT * FROM user WHERE age>18 GROUP BY name; 执行结果  三、排序查询

    1K10

    MySQL模糊查询用法大全(正则、通配符、内置函数等)

    中常用到的模糊查询方法,通过通配符%来进行匹配,其实,这只是冰山一角,在MySQL中,支持模糊匹配的方法有很多,且各有各的优点。...好了,今天让我带大家一起掀起MySQL的小裙子,看一看模糊查询下面还藏着多少鲜为人知的好东西。 目录 一、MySQL通配符模糊查询(%,_) 1-1. 通配符的分类 1-2....技巧与建议: 二、MySQL内置函数检索(locate,position,instr) 2-1. LOCATE()函数 2-2. POSITION()方法 2-3....能让检查你代码的同事或领导对你刮目相看那种~~ 当然,下面我们就来看看MySQL的第二类模糊匹配方式 — 内置函数查询 二、MySQL内置函数检索(locate,position,instr) 话接上文...OK,下面一起来看看这三种内置函数的使用方法吧。 先明确一下,MySQL中的角标从左往右是从1开始的,不像java最左边第一位角标是0,因此在MySQL中角标为0时说明不存在。 2-1.

    2.3K20

    MySQL模糊查询用法大全(正则、通配符、内置函数等)

    好了,今天让我带大家一起掀起MySQL的小裙子,看一看模糊查询下面还藏着多少鲜为人知的好东西。 目录 一、MySQL通配符模糊查询(%,_) 1-1. 通配符的分类 1-2....技巧与建议: 二、MySQL内置函数检索(locate,position,instr) 2-1. LOCATE()函数 2-2. POSITION()方法 2-3....能让检查你代码的同事或领导对你刮目相看那种~~ 当然,下面我们就来看看MySQL的第二类模糊匹配方式 --- 内置函数查询 二、MySQL内置函数检索(locate,position,instr) 话接上文...OK,下面一起来看看这三种内置函数的使用方法吧。 先明确一下,MySQL中的角标从左往右是从1开始的,不像java最左边第一位角标是0,因此在MySQL中角标为0时说明不存在。 2-1....regexp、rlike的正则匹配查询 MySQL中的regexp和rlike关键字属于同义词,功能相同。

    12.5K44

    查询函数|lookup函数家族

    今天跟大家分享的是查询函数——lookup函数家族! 查询函数是excel函数中使用频繁程度与求和函数不相上下的功能。...excel中关于查询功能的函数主要有以下几组: lookup函数组: lookup vlookup hlookup index+match函数 今天我们只介绍第一组lookup函数: lookup函数:...当您需要查询一行或一列并查找另一行或列中的相同位置的值时,会使用其中一个查找和引用函数 LOOKUP。...Vlookup函数: 关于vlookup函数的语法解释,vlookup(查找数据,目标数据,返回列数,查找方式) ? ?...以上三个函数中,vlookup函数应用场景最为丰富,参数设置比较灵活。 通过对比三个函数的用法,我们可以发现三者之间的区别主要如下: ? ? ?

    1.9K40

    mysql查询优化方法_MySQL查询优化

    :索引没有设计好、SQL 语句没写好、MySQL 选错了索引 ’mysql查询优化 第一步:开启mysql查询日志,通过慢查询日志定位到执行较慢的SQL语句。...存储过程的信息对查询的影响情况 EXPLAIN 不考虑各种 Cache EXPLAIN 不能显示 MySQL 在执行查询时的动态,因为执行计划在执行查询之前生成 EXPALIN 部分统计信息是估算的,并非精确值...SUBQUERY 在 SUBQUERY 基础上,子查询中的第一个SELECT,取决于外部的查询 DERIVED 在 FROM 列表中包含的子查询,被标记为 DERIVED(衍生),MYSQL会递归执行这些子查询...possible_keys: 指出 MySQL 能使用哪个索引在表中找到记录,查询涉及到的字段上若存在索引,则该索引将被列出,但不一定被查询使用 如果该列是 NULL,则没有相关的索引 key: 显示...Impossible where:说明 where 语句会导致没有符合条件的行,通过收集统计信息不可能存在结果 Select tables optimized away:说明仅通过使用索引,优化器可能仅从聚合函数结果中返回一行

    14.4K40

    MYSQL 查询条件的函数不要乱用, 与随机函数怎么走索引

    后来发现是在语句后面使用了某函数,造成了问题。OK 我们来做一个测试,稍微的还原一下场景。...那到底是怎么产生这个问题的,MYSQL 的在查询中,由于后面的函数rand() 是一个随机的函数,他反馈的也是一个随机的值,相关的对比不是获得了值后进行查询而是每一行都需要和随机值对比,虽然随机值在对比的时候应该是一致的...下面是两个自建的函数,就是要证明我上边说的不是胡说八道,注意两个函数没有大的区别,仅仅在 DETERMINISTIC 上有区别,下边的第一个 DELIMITER $$ create function pick_up_rand...BEGIN RETURN floor(rand()*1000); end $$ 从下图看,1 证明我的观点是正确的,的确不确定的数值在MYSQL...中是要进行全表扫描的, 2 类似这样的问题,可以采用在写一个函数,并且将其确定化来满足这样的需求,同时也满足MYSQL 查询优化器选择索引的可能性。

    1.7K10

    MySQL查询 嵌套查询

    MySQL查询 嵌套查询 一、带IN关键字的子查询 二、带EXISTS关键字的查询 三、带ANY、SOME 关键字的子查询 四、带ALL 关键字的查询 自言自语 一、带IN关键字的子查询 使用IN...关键字进行子查询的时候,内层查询语句仅仅返回一个数据列。...语法格式: SELECT 查询字段 FROM 表名 WHERE 字段名 [NOT] IN (SELECT 语句); 二、带EXISTS关键字的查询 意思就是内层的select查到了(至少查到了一行)才进行查询...,没有查到就不进行查询。...只要满足内层子查询中的任何一个比较条件,就返回一个结果作为外层查询的条件。 (满足任意一个) 语法格式: SELECT 查询字段 FROM 表名 WHERE 字段名 比较运算符(>,<..)

    12.1K40

    MySQL(联合查询、子查询、分页查询

    目录 联合查询查询 分页查询 联合查询 联合查询是指将多个查询结果合并成一个结果集(二维表),通常出现在统计分析中。 语法: 查询语句1 UNION 查询语句2 UNION ......查询语句N 注意: 1.所有查询语句的返回结果的列数必须相等 2.每列的数据类型必须一致,【查询语句1中字段列表的类型必须和查询语句2中的字段列表类型对应且一致】 代码实例: SELECT user_id...子查询分类: 按结果及行数分: 1、 标量子查询(单行子查询:结果集只有一行一列) 2、 列子查询(多行子查询:结果集多行一列) 3、 行子查询(结果集有多行多列) 4、 表子查询(结果集有多行多列)...按出现位置分: 1、 SELECT 后面:只能出现标量子查询 2、 FROM 后面:表子查询查询结果必须起别名) 3、 WHERE|HAVING:支持标量子查询,列子查询,行子查询 4、 EXISTS...后面:支持表子查询 代码实例: 查询订单信息,并显示用户姓名 SELECT a.

    16.4K20

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券