记录工作学习遇到的SQL语句
文章平均质量分 56
记录SQL语句
家乡的落日
博观约取,厚积薄发。拒绝浮躁,保持谦逊。
展开
-
SQL深分页的建议优化方案
假如有 t_order表 数据量有1000w,现在想分页查询第80w页的数据,每页10条,最基本的sql如下上面查询的问题在于,MySQL 必须扫描前 7999999 行(注意这里应该是 7999999,因为 LIMIT 子句中的偏移量是基于 0 的索引,但实际上它包括了这一行)来定位到第 7999990 行之后的 10 行数据。这种全表扫描(或至少是大部分表的扫描)在大数据集上是非常耗时的。原创 2024-09-05 22:21:46 · 419 阅读 · 0 评论 -
Mysql分组排序后取每组第一条数据的2种实现方式
mysql 5.7.x版本,默认开启了only_full_group_by模式,但是开启这个模式后有的sql语句就有可能报错Error Code: 1055. Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘×××’ which is not functionally dependent on columns in GROUP BY clause; this is inco原创 2020-11-08 15:00:48 · 2057 阅读 · 0 评论 -
Mysql 使用replace函数替换数据库中的字符串内容 再进行查询
例如:搜索条件是1234数据库存的内容是 123 456如果使用 select * from table where name like '%1234%'是查不到数据的如果要忽略 数据库字段中的空格 则可以使用 replace函数 select * from table where REPLACE(name,' ','') like '%1234%'REPLACE同时还支持嵌套 例如还要将中文逗号替换成英文逗号 select * from table where REPLACE (原创 2021-10-12 17:21:45 · 916 阅读 · 0 评论 -
MySQL不同版本SQL语法兼容问题报错MySQL-this is incompatible with sql_mode=only_full_group_by
今天在本地使用MySQL5.5写了一个多表的查询 结果放服务器上报错MySQL-this is incompatible with sql_mode=only_full_group_by后来发现是服务器用的5.7版本的MySQLmysql 5.7版本默认的sql配置是:sql_mode=“ONLY_FULL_GROUP_BY”,这个配置严格执行了"SQL92标准"。由于开启了ONLY_FU...原创 2020-03-17 23:21:20 · 914 阅读 · 0 评论 -
工作学习过程中遇到的SQL语句
1、查询员工入职日期距离现在日期之间有多少年 主要是使用这个函数 TIMESTAMPDIFF(可以填年月日,小的日期,当前日期)“SELECT * FROM EMP WHERE TIMESTAMPDIFF(YEAR,hiredate,CURRENT_DATE())>3” 查询入职时间超过3年的员工信息...原创 2020-02-22 01:00:46 · 307 阅读 · 0 评论