首页
学习
活动
专区
圈层
工具
发布

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条件添加索引,就可以使用索引优化查询。

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

    【MySQL】函数 & 复合查询 & 内外连接

    四、函数 4.1 聚合函数 数 说明 COUNT([DISTINCT] expr) 返回查询到的数据的数量 SUM([DISTINCT] expr) 返回查询到的数据的总和 AVG([DISTINCT]...分组查询做准备的,聚合函数是以 查出来的记录 为单位帮我们进行 数据聚合统计的。...mysql 中其实也是有函数的,这个函数可以被直接调用,我们可以在mysql直接使用聚合函数直接对一组结果进行聚合统计。 聚合函数()里面可以是全列,可以是指定列。...密码函数 除了md5进行保存密码之外,数据库还提供更复杂的密码设定的函数 password(),MySQL数据库使用该函数对用户加密 select password('root'); # SELECT...整体的查询结果本身就是表结构,mysql一切皆表,所以不要认为只有物理上真实存在的表才可以做笛卡尔积,我们可以将一个查出来的表结构也可以和其他表或者其他查询结果做笛卡尔积。

    58610

    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

    2.2K30

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

    MONTHNAME(date) 返回date的月份名,如:SELECT MONTHNAME(CURRENT_DATE); NOW() 返回当前的日期和时间 QUARTER(date) 返回date在一年中的季度...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()函数,它可以把一个值转化为指定的数据类型。

    2.8K21

    Linux——MySQL内置函数与复合查询

    内置函数 日期函数 获得年月日: 获得时分秒: 获得时间戳: 返回日期部分: 在日期的基础上加日期: 在日期的基础上减去时间: 计算两个日期之间相差多少天:...截取EMP表中ename字段的第二个到第三个字符 以首字母小写的方式显示所有员工的姓名 去除空格 数学函数 函数名称 描述 abs (number) 绝对值函数 bin (decimal...其它函数 user() 查询当前用户 md5(str)对一个字符串进行md5摘要,摘要后得到一个32位字符串 database()显示当前正在使用的数据库 password()函数...,MySQL数据库使用该函数对用户加密 ifnull(val1, val2) 如果val1为null,返回val2,否则返回val1的值 复合查询 对一张表进行查询,在实际开发中这远远不够。...方法2:使用子查询:(其实也算是多表,因为mysql下一切皆表) 总结:解决多表问题的本质——想办法将多表转化成为单表,所以musql中,所有的select的问题全部可以转换成单表问题。

    45620

    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 数学函数

    80020

    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.7K20

    mysql 联合查询_MySQL联合查询

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

    24.8K30

    Mysql慢查询_mysql并发查询慢

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

    24K20

    【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; 执行结果  三、排序查询

    1.4K10

    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.

    5.5K20

    MySQL层级查询实战:无函数实现部门父路径

    ## 本次需要击毙的MySQL函数函数主要用于**获取部门的完整层级路径**,方便在应用程序或SQL查询中直接调用,快速获得部门的上下级关系信息。...执行该函数之后简单使用SQL可以实现数据库中部门名称查询。...',', _name); END WHILE; -- 返回拼接好的字符串,包含从顶级父部门到当前部门的所有层级信息 RETURN _name;END;```## 如何进行重构解决分析函数的作用是通过递归的方式...### 方案一采用MySQL8+的CTE实现```javaWITH RECURSIVE dept_path AS ( SELECT code, name, pid, CAST(CONCAT(code...修改SQL查询部门部分,直接查询用户对应的部门编码和部门名称,不调用递归函数```java SELECT du.user_code

    34200

    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关键字属于同义词,功能相同。

    14.1K44
    领券