mysql学习笔记(四):group by,limit,to_days(),from_days()
1、
[Err] 1055 - Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'zjh.student1.name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
only_full_group_by :使用这个就是使用和oracle一样的group 规则, select的列都要在group中,或者本身是聚合列(SUM,AVG,MAX,MIN) 才行
2、to_days() 和from_date()函数
-- select FROM_DAYS(9814); #0026-11-14
-- select FROM_DAYS(366); #0001-01-01
-- select FROM_DAYS(365); # 0000-00-00
-- select TO_DAYS('2014-11-18')-TO_DAYS('1988-01-05'); #9814
#
select TO_DAYS('2014-11-18'); #返回从0000年(公元1年)至当前日期的总天数。在这里是 735920天,下面测试735920到底是不是按天数转化为的一个日期
select FROM_DAYS(735921);# 结果是2014-11-19 说明是正确的理解
SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS('2019-11-18')-TO_DAYS('1998-01-05')),'%Y');#0021,,,是自己现在的年龄21岁
3、limit关键字
这里我们看看mysql用limit是如何分页的:
首先来看我表结构:

再看我的查询语句:
1 SELECT * from d_user LIMIT 1,2
接着看查询结果:

看到上面的结果你可能会很疑惑,为什么是从id=2开始,我之前也很疑惑,我明明是让他从第一行开始。经过查阅资料,发现limit默认的初始行是从0行开始。
也就是说如果我们要获取到id=1的那一行那我们的sql语句就应该这样写:
SELECT * from d_user LIMIT 0,2
结果:

看到这里相信我们已经明白了。使用limit关键字时有两个参数,如:limit arg1,arg2;
其中:arg1表示从哪一行开始,初始行为0;
arg2表示显示多少行,如:limit 0,2;limit 1,2;这两种方式都是显示两条数据,只不过一条是从第0行开始,一条是从第1条开始。
----------------------------------------------------------------------------------------------------------------------------------------------------------
补充:当arg1=0时,可以不用写arg1,直接写:limit arg2就可以了。
注意:arg2貌似不能为负数,使用navicat for mysql执行时会报错:
mysql学习笔记(四):group by,limit,to_days(),from_days()的更多相关文章
- MySql学习笔记四
MySql学习笔记四 5.3.数据类型 数值型 整型 小数 定点数 浮点数 字符型 较短的文本:char, varchar 较长的文本:text, blob(较长的二进制数据) 日期型 原则:所选择类 ...
- MySQL学习笔记四:字符集
1.字符集就是字符和其编码的集合,查看数据库支持的字符集 show character set 2.查看服务端启动时默认的字符集 mysql> show variables like 'char ...
- MySQL学习笔记(四)—存储过程
一.概述 存储过程是数据库定义的一些SQL语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL语句.存储过程可以避免开发人员重复的编写相同的SQL语句,而且存储过程是在MySq ...
- MySQL学习笔记(四):存储引擎的选择
一:几种常用存储引擎汇总表 二:如何选择 一句话:除非需要InnoDB 不具备的特性,并且没有其他办法替代,否则都应该优先考虑InnoDB:或者,不需要InnoDB的特性,并且其他的引擎更加合适当前情 ...
- mysql学习笔记四 —— AB复制
要点:ab复制 mysql集群架构流程: ABB(主从复制)-->MHA(实现mysql高可用.读写分离.脚本控制vip飘逸)-->haproxy(对slave集群实现分发,负载均衡)-- ...
- MySql学习笔记(四) —— 数据的分组
前面介绍的聚集函数只是用来计算行数,平均数,最大值,最小值而不用检索所有数据.通过count()函数,我们可以计算生产商1003提供的产品数目,但如果我要查询所有生产商提供的商品数,这就需要进行分组查 ...
- openresty 学习笔记四:连接mysql和进行相关操作
openresty 学习笔记四:连接mysql和进行相关操作 毕竟redis是作为缓存,供程序的快速读写,虽然reidis也可以做持久化保存,但还是需要一个做数据存储的数据库.比如首次查询数据在red ...
- Mysql学习笔记(三)对表数据的增删改查。
正文内容. 这一部分是最简单的,也是最麻烦的.简单是因为其实只包括增删该插四个部分.大体上看,增加数据.删除数据.修改数据.查询数据都不麻烦啊,我们日常都是常用的.这个谁不会呢?以前在培训机构学mys ...
- mysql basic operation,mysql总结,对mysql经常使用语句的详细总结,MySQL学习笔记
mysql> select * from wifi_data where dev_id like "0023-AABBCCCCBBAA" ; 1.显示数据库列表.show d ...
- 【mysql学习笔记整理】
/*mysql学习笔记整理*/ /*常用的数据库操作对象*/ #库的操作#创建#数据库的创建USE mysql;CREATE DATABASE db_x;#删除#删除数据库DROP DATABASE ...
随机推荐
- DataGridView 定位到指定行
//定位到指定行(样式)dataGridView1.ClearSelection();dataGridView1.Rows[selectIndex].Selected = true; //让指定行处于 ...
- 1级迁移类Q101-Oracle ASM 迁移文件系统(File System)非公
项目文档引子系列是根据项目原型,制作的测试实验文档,目的是为了提升项目过程中的实际动手能力,打造精品文档AskScuti. 项目文档引子系列目前不对外发布,仅作为博客记录.如学员在实际工作过程中需提前 ...
- 短路运算符&&、或运算符||的理解
一.短路运算符&& 1.当只有两个表达式的时候(如a&&b),先看第一个表达式转换成布尔值的结果若为真,那么再看第二个表达式转换成布尔值的结果,就可以返回该表达式的值了 ...
- HTML连载62-固定定位练习、z-index属性
一.固定定位应用场景 1.练习 <!DOCTYPE html> <html lang="en"> <head> <meta charset ...
- C正数负数的原码补码反码以及内存地址分析
#include<stdio.h> void swap(int a, int b); void main1(){ int i = 10; //正数的原码 00000000 00000000 ...
- 剑指offer(leetcode 10.) 正则表达式匹配
这题一年前就做过,当时刚开始刷leetcode,提交了几十次过不去,就放那没管了.今天剑指offer又遇到这题,终于做出来了,用的dp. class Solution { public: bool i ...
- Ehcache缓存数据
1.ehcahe简介 EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider. 看到官网上已经3.0了. 2.作用 我把它当做一 ...
- 计算机网络,HTTP - 如何查看一个网站是否使用HTTP/2?
方法 HTTP/2用":authority"头部代替"Host"头部. Chrome F12里面,HTTP/1.1有"view source" ...
- BeautifulSoup的基本使用
一.将一段文档传入BeautifulSoup的构造方法,得到一个文档的对象: from bs4 import BeautifulSoup Soup = BeautifulSoup(html_doc) ...
- 【sql】sql必知必会_02
chapter10 - 常用的sql标准有哪些,在SQL92中是如何使用连接的? sql两个主要的标准sql92.sql95: sql92中的五种连接方式: a.笛卡尔积:是一个数学运算,两个集合X和 ...