Mysql 随笔记录
Soundex 声音相似的
select * from demos where Soundex('title') = Soundex('标示');
Concat 拼接语句
select concat(id,'(##',title,'##)') from demos;
正则 REGEXP
select * from demos where value regexp '\\内容';
\\表示查找;
\\f 换页
\\n 换行
\\r 回车
\\t 制表
\\v 纵向制表
AND 和 OR 一起时,先处理 AND;
_下划线只匹配一个字符,%可以匹配除了NULL的数据;
IS NULL
检测是否为NULL; SELECT * FROM tab WHERE id IS NULL;
返回不同值
SELECT DISTINCT row FROM tab;
显示授权用户
SHOW GRANTS;
显示广泛的服务器状态信息
SHOW STATUS;
INNER JOIN 关键字
在表中存在至少一个匹配时,INNER JOIN 关键字返回行。
注释:INNER JOIN 与 JOIN 是相同的。
SELECT id FROM tab1 INNER JOIN tab2 ON tab1.id = tab2.id
AS 关键字
SELECT f.id,m.title FROM tab1 AS f LEFT JOIN tab2 AS m ON f.id = m.id
USING 关键字
用于表连接时给定连接条件(可以理解为简写形式),如
SELECT * FROM table1
JOIN table2 ON table1.id = table2.id
使用 USING 可以写为
SELECT * FROM table1
JOIN table2 USING(id)
HAVING
引入 HAVING 是因为 WHERE 无法和统计函数一起使用
如表 order (定单)有如下字段:
id, date, price, customer
查找订单总额少于2000的客户可以这样写:
SELECT customer, SUM(price) FROM order
GROUP BY customer
HAVING SUM(price)<2000
查找指定客户中订单超过1500的订单总额:
SELECT customer,SUM(price) FROM order
WHERE customer=’…’ OR customer = ‘…’
GROUP BY customer
HAVING SUM(price) > 1500
MATCH AGAINST
在body(后面的)里查询database与title(前面的)一起显示
mysql> SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('database');
DATEDIFF 返回两个日期之间的天数,
使用如下 SELECT 语句:
SELECT DATEDIFF('2008-12-30','2008-12-29') AS DiffDate
结果:
DiffDate 1
IF条件
IF(expr1,expr2,expr3) 1为条件,true返回2,false返回3
SELECT IF(1<2,true,false); //返回true, 1
CASE 5 WHEN 1 THEN 'ONE' WHEN 2 THEN TWO ELSE XXX
类似 switch(5)
{
case 1:
'ONE'
break;
case 2:
'TWO'
break;
default:
xxx
break;
}
SELECT CASE 5 WHEN 1 THEN "one" WHEN 2 THEN "two" ELSE id END from TabName;
//如果这里的返回值带有引号,就是string类型,不能用于select 查询,不然返回的是这个字符串
Mysql 随笔记录的更多相关文章
- Atitit 分区后的查询 mysql分区记录的流程与原理
Atitit 分区后的查询 mysql分区记录的流程与原理 1.1.1. ibd是MySQL数据文件.索引文件1 1.2. 已经又数据了,如何分区? 给已有的表加上分区 ]1 1.3. 分成4个区, ...
- PHP获取MySql新增记录ID值的方法
今天发现用mysql_insert_id()获取到的新增记录的id不正确, 虽然发现源代码的事务写的有问题,但是最根本的原因是,我插入数据的id类型是bigint型 获取MySql新增记录ID值的方法 ...
- MapXtreme 随笔记录1
最近在用MapXtreme做项目,随笔记录备忘. 声明:PubMapPara 静态类,后缀为静态类成员变量 1.加载地图 /// <summary> /// 地图工作空间文件路径 /// ...
- MySQL如何记录binlog
--MySQL如何记录binlog -------------------------------2014/07/08 binlog文件的内容 log event MySQL的 ...
- 【转】MySQL 当记录不存在时insert,当记录存在时update
MySQL当记录不存在时insert,当记录存在时更新:网上基本有三种解决方法 第一种: 示例一:insert多条记录 假设有一个主键为 client_id 的 clients 表,可以使用下面的语句 ...
- MySQL行(记录)的详细操作一 介绍 二 插入数据INSERT 三 更新数据UPDATE 四 删除数据DELETE 五 查询数据SELECT 六 权限管理
MySQL行(记录)的详细操作 阅读目录 一 介绍 二 插入数据INSERT 三 更新数据UPDATE 四 删除数据DELETE 五 查询数据SELECT 六 权限管理 一 介绍 MySQL数据操作: ...
- PHP获取MySql新增记录ID值的3种方法
From: http://www.jb51.net/article/51473.htm 这篇文章主要介绍了PHP获取MySql新增记录ID值的3种方法,一般使用PHP自带函数mysql_insert_ ...
- MySQL 当记录不存在时insert,当记录存在时update(ON DUPLICATE KEY UPDATE, REPLACE语句)
MySQL 当记录不存在时insert,当记录存在时更新 网上基本有三种解决方法. 第一种:示例一:insert多条记录 假设有一个主键为 client_id 的 clients 表,可以使用下面的语 ...
- MySQL 当记录不存在时insert,当记录存在时update
MySQL当记录不存在时insert,当记录存在时更新:网上基本有三种解决方法 第一种: 示例一:insert多条记录 假设有一个主键为 client_id 的 clients 表,可以使用下面的语句 ...
随机推荐
- python自己做计算器
题目: exp = '1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) ...
- LeetCode--二叉树1--树的遍历
LeetCode--二叉树1--树的遍历 一 深度遍历 深度遍历里面由 三种遍历方式,两种实现方法.都要熟练掌握. 值得注意的是,当你删除树中的节点时,删除过程将按照后序遍历的顺序进行. 也就是说,当 ...
- swagger 以及swaggerUI使用的步骤
1.swagger,可以这么理解swagger是接口规范.Rest Api 传递参数的除了get请求外,put post,需要传递json.或者就是直接都通过传递json到后台 这里主要介绍一下spr ...
- Fedora CoreOS 非LInux专业安装文章第一手
开篇一张图 Docker基本知识掌握后,又学习了"专有的系统平台",CoreOS; 之前一直Windows,学习Docker的同时练习了好多Linux知识,全是江湖路数,打个不同就 ...
- node--静态服务器
1.同步读取文件 const data = fs.readFileSync('./model/mime.json'); // 这里是添加了可以正常链接其他格式文件的服务器 const http = ...
- 前端基础知识之HTML
[1: What does a doctype do?] 1: doctype是html文件的第一行代码,意味着它的前面有注释都不行.所以要要写在<html>标签前面,而且它不属于html ...
- Vue的模板内换行问题
在用vue的模板{{}}进行渲染文本时候,字符串换行不起作用,后使用ES6的模板字符串进行换行仍然不起作用,解决方法: <div>{{str}}</div> 可换为用v-htm ...
- 记录:更新VS2019后单元测试运行卡住无法运行测试的问题。
先说一下是如何遇到这个问题的 今天更新了Visual Studio到最新的版本,然后在运行之前建立的单元测试项目的时候一直卡住,过了一会儿以后提示 未能协商协议,等待响应在 90 秒后超时.出现此问题 ...
- vquery 一些应用
// JavaScript Document function myAddEvent(obj,sEv,fn){ if(obj.attachEvent){ obj.attachEvent('on'+sE ...
- 解决使用 el-table 中使用多选框 Checkbox 不刷新问题
问题 在 el-table 中使用 Checkbox 仅作为展示时,v-model 双向绑定就变得不那么适用了,这时候我们会使用 checked 属性来代替v-model. 问题来了当使用 filte ...