聚合函数的用法:

concat 连接单行记录的不同字段, group_concat 连接多行记录的相同字段, concat_ws

count 按条件统计:

SELECT COUNT(*) AS `num` GROUP BY `age` > 24  —— 可能需要建立临时表排序(没有对分组条件建立索引话),效率低

COUNT( CASE WHEN `age` >24 THEN 1 ELSE NULL END )

COUNT(if(pay_status=1, true, NULL))

SELECT COUNT(id>4 or null), COUNT(id=1 OR NULL) from test

同时作用于字段与条件

select COUNT(DISTINCT t1.questionId, t1.createTime > CURDATE() OR NULL ) newNumber FROM stu_errbook t1

group by 分组统计:

SELECT name, address, MAX(age) FROM t GROUP BY name

这段 sql 可能成功,也可能报错。当 name 字段为主键或 unique not null 键,那么它会决定确定该行,因此 address 字段也被确定(依赖于分组字段)。否则的话,address 的值是randomness的,因此会拒绝此次查询( 只当 ONLY_FULL_GROUP_BY  开启 时, mysql 5.75 默认开启)。参考

mysql 随机数:

SELECT * FROM users WHERE userId >= ((SELECT MAX(userId) FROM users)-(SELECT MIN(userId) FROM users)) * RAND() + (SELECT MIN(userId) FROM users)  LIMIT 1

判断空值:

ifnull is null is not null

建立唯一索引, 并删除重复数据

alter ignore table user add unique index(user_id,user_name);

按字符串中的数字排序(默认是字典序)

方法一

SELECT
CAST(title AS UNSIGNED INTEGER) AS ORDER_FIELD
,title
ORDER BY
ORDER_FIELD ASC

方法二

SELECT * FROM table ORDER BY LENGTH(title), title

  

按两个字段中的较大值排序(注意空值判断时返回 null)

select IF(t1.createTime > MAX(t4.lastLearnTime) || MAX(t4.lastLearnTime) IS NULL, t1.createTime, MAX(t4.lastLearnTime)) AS orderTime
from table1 t1, table4 t4
order by orderTime

233

mysql 零碎笔记的更多相关文章

  1. Mysql学习笔记(三)对表数据的增删改查。

    正文内容. 这一部分是最简单的,也是最麻烦的.简单是因为其实只包括增删该插四个部分.大体上看,增加数据.删除数据.修改数据.查询数据都不麻烦啊,我们日常都是常用的.这个谁不会呢?以前在培训机构学mys ...

  2. MySQL学习笔记一

    MySQL 学习笔记 一 一.数据库简单介绍 1. 按照数据库的发展时间顺序,主要出现了以下类型数据库系统: Ø 网状型数据库 Ø 层次型数据库 Ø 关系型数据库 Ø 面向对象数据库 上面4中数据库系 ...

  3. MYSQL基础笔记(六)- 数据类型一

    数据类型(列类型) 所谓数据烈性,就是对数据进行统一的分类.从系统角度出发时为了能够使用统一的方式进行管理,更好的利用有限的空间. SQL中讲数据类型分成三大类:1.数值类型,2.字符串类型和时间日期 ...

  4. MYSQL基础笔记(五)- 练习作业:站点统计练习

    作业:站点统计 1.将用户的访问信息记录到文件中,独占一行,记录IP地址 <?php //站点统计 header('Content-type:text/html;charset=utf-8'); ...

  5. MYSQL基础笔记(四)-数据基本操作

    数据操作 新增数据:两种方案. 1.方案一,给全表字段插入数据,不需要指定字段列表,要求数据的值出现的顺序必须与表中设计的字段出现的顺序一致.凡是非数值数据,到需要使用引号(建议使用单引号)包裹. i ...

  6. MYSQL基础笔记(三)-表操作基础

    数据表的操作 表与字段是密不可分的. 新增数据表 Create table [if not exists] 表名( 字段名 数据类型, 字段名 数据类型, 字段n 数据类型 --最后一行不需要加逗号 ...

  7. MYSQL基础笔记(二)-SQL基本操作

    SQL基本操作 基本操作:CRUD,增删改查 将SQL的基本操作根据操作对象进行分类: 1.库操作 2.表操作 3.数据操作 库操作: 对数据库的增删改查 新增数据库: 基本语法: Create da ...

  8. MYSQL基础笔记(一)

    关系型数据库概念: 1.什么是关系型数据库? 关系型数据库:是一种建立在关系模型(数学模型)上的数据库 关系模型:一种所谓建立在关系上的模型. 关系模型包含三个方面: 1.数据结构:数据存储的问题,二 ...

  9. MySQL入门笔记

    MySQL入门笔记 版本选择: 5.x.20 以上版本比较稳定 一.MySQL的三种安装方式: 安装MySQL的方式常见的有三种: ·          rpm包形式 ·          通用二进制 ...

随机推荐

  1. module.exports与exports区别

    CommonJS模块规范 Node应用由模块组成,采用CommonJS模块规范. 根据这个规范,每个文件就是一个模块,有自己的作用域.在一个文件里面定义的变量.函数.类,都是私有的,对其他文件不可见. ...

  2. 【转】Beginning Game Programming v2.0

    Beginning Game Programming v2.0 Last Updated 8/19/18 Greetings everyone, welcome to the ground up re ...

  3. JUC--ConcurrentHashMap

    HashMap HashTable HashTable锁住整个表 会存在复合操作上的问题“若不存则添加” “若存在则删除” 也是不安全的  效率低 ConcurrentHashMap:采用锁分段机制  ...

  4. 关于 git 本地创建 SSH Key 遇到的一点问题(①file to save the key & ②the authenticity of host...)

    背景 由于想测试一下 SSH Key 创建的路径(.ssh 目录路径)对于不同位置 git 项目是否有效. 比如,.ssh 默认在 C:\[users]\[username] 目录下,而项目 proj ...

  5. Xamarin Layout属性(转)

    第一类:属性值 true或者 false android:layout_centerHrizontal 水平居中 android:layout_centerVertical 垂直居中 android: ...

  6. java 静态代理模式

    package proxy.staticproxy; public interface IStar { public void sing(); } package proxy.staticproxy; ...

  7. Jmeter 后置处理器JSON Extractor 提取json的多个值

  8. 3. ORACLE DATAGUARD 进程

    欢迎指正与讨论. 3.1 主库 LNS LNS:一般理解为log network serviceLNS 进程负责将主库redo传输到备库.在11gR1及之前版本进程命名为LNSn,其负责ASYNC和S ...

  9. 爬虫-request和BeautifulSoup模块

    requests简介 Python标准库中提供了:urllib.urllib2.httplib等模块以供Http请求,但是,它的 API 太渣了.它是为另一个时代.另一个互联网所创建的.它需要巨量的工 ...

  10. oh-my-zsh: 让终端飞

    上一次推文写了JupyterLab:程序员的笔记本神器,介绍的是如何在web端打造一个便捷的开发环境,发出后反响还不错 因此我决定再写几篇能提升程序员工作以及学习效率的文章,如果能形成一个系列那是最好 ...