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 ...
随机推荐
- 认识Flow(一)
Flow 是 facebook 出品的 JavaScript 静态类型检查工具.Vue.js 的源码利用了 Flow 做了静态类型检查,所以了解 Flow 有助于我们阅读源码. 为什么用 Flow J ...
- IntelliJ WebStorm 最新版 安装永久破解教程【最强,可用至2099年】
IntelliJ WebStorm 2018.3.6安装永久破解[最强] 一. 在官网下载WebStorm安装包 链接:http://www.jetbrains.com/webstorm/down ...
- 动态生成sku组合输入列表
<!DOCTYPE html> <html> <head> <title></title> <meta http-equiv=&quo ...
- shell问题汇总
1. sudo执行脚本找不到变量 当普通用户下,设置并export一个变量,然后利用sudo执行echo命令,能得到变量的值,但是如果把echo命令写入脚本,然后再sudo执行脚本,就找不到变量,未能 ...
- JUC-线程间通信
面试题: 两个线程,一个线程打印1-52,另一个打印字母A-Z打印顺序为12A34B...5152Z, 要求用线程间通信 线程间通信:1.生产者+消费者2.通知等待唤醒机制 多线程编程模版中 1.判断 ...
- Oracle体系结构中基本概念,数据库
在Oracle体系结构中包含了基本概念即Oracle数据库与实例,如果你想要了解Oracle体系结构的话,你就必须要了解这两个基本的概念,以下是文章的具体介绍,望你浏览完以下的内容会有所收获. 数据库 ...
- 《Head first设计模式》学习笔记 – 迭代器模式
<Head first设计模式>学习笔记 – 迭代器模式 代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示. 爆炸性新闻:对象村餐厅和对象村煎饼屋合并了!真是个 ...
- js获取自定义data属性
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- 记录 shell学习过程(7) case 以及 shell 的特殊变量
case 语法 read -p "num:" n case $n in ) echo haha ;; ) echo hehe ;; ) echo heiehi ;; *) echo ...
- Python之路Day07
基础数据类型补充 str s.capitalize() -- 首字母大写 s.title() -- 每个单词首字母大写 s.swapcase() -- 大小写转换 s.center() -- 居中/填 ...