天天看點

常用 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 年

查詢:

更新: