天天看点

常用 SQL 语句汇总【事务】【复杂统计】【根据查询结果update】【反向like查询】【字段数据转移】【区分大小写查询】【时间偏移】MySQL 添加索引【从小到大排序,0在最后】【MySQL计算时间差】【按月统计数据】【替换URL域名】【推荐数据修复】【指定数据互换】

使用like关键字时,前置%会导致索引失效。

使用null值会被自动从索引中排除,索引一般不会建立在有空值的列上。

使用or关键字时,or左右字段如果存在一个没有索引,有索引字段也会失效。

使用!=操作符时,将放弃使用索引。因为范围不确定,使用索引效率不高,会被引擎自动改为全表扫描。

不要在索引字段进行运算。

在使用复合索引时,最左前缀原则,查询时必须使用索引的第一个字段,否则索引失效;并且应尽量让字段顺序与索引顺序一致。

避免隐式转换,定义的数据类型与传入的数据类型保持一致。

使用多列字段排序的时候,应当尽量使用同样的排序规则,否则会导致索引失效。

使用 lower 函数进行不区分大小写比较时,应当先检查字段的排序规则是否已经为 utf8_general_ci 不区分大小写排序,如果已经是,则避免使用 lower 转小写进行比较,因为 lower 会导致索引失效。

mysql的MyISAM引擎是不支持事务的,需要更改为Innodb

格式:update table_a inner join table_b on xxx = xxx set table_a.xxx = "xxx"

时间字段 <= date_add(now(), interval - 6 MONTH)

interval可是:SECOND 秒、MINUTE 分钟、HOUR、DAY 天、MONTH 月、YEAR 年

查询:

更新: