基礎語法進階
IFNULL(xxx,xx) : 如果XXX字段爲null,轉換爲XX值
like ‘_a’ : 模糊查詢中只包含一個字符
ESCAPE '~' : 轉義符,可以直接用 ‘\’ 也可用ESCAPE ‘ ’
常用函數整理
字符函數
length('') 獲取參數的字節數
CONCAT(str1,str2,...) : 拼接字符串
CONCAT_WS(separator,str1,str2,...) : 拼接字符串,使用separator分割
upper、lower 轉換大小寫;
substr、substring
SUBSTR(str,pos) :截取制定位置後的字符串
SUBSTR(str,pos,len) : 截取從制定位置開始制定長度的字符
INSTR(str,substr) : 返回指定字符串在當前字符串中的索引位置
TRIM([remstr FROM] str) :在字符串中去掉指定字符(開頭和結尾)
LPAD(str,len,padstr) :左填充,用指定的字符,將字符串爲填充指定的長度
RPAD(str,len,padstr) :右填充,用指定的字符,將字符串爲填充指定的長度
`REPLACE`(str,from_str,to_str) : 在指定字符串中替換給定的字符串,全部替換
數學函數
ROUND(X) :四捨五入,小數點後
ROUND(X,D):四捨五入 ,指定位數
CEIL(X) :向上取整
FLOOR(X) : 向下取整
`TRUNCATE`(X,D) : 截斷小數點後D位
`MOD`(N,M) : 取模;MOD(a,b) : a-a/b*b (java中‘a\b’取整數)
日期函數
now(): 當前日期加時間
CURTIME() :當前時間
獲取時間的指定部分:
YEAR(date); `MONTH`(date)【數字】; MONTHNAME(date)【英文】; `DAY`(date); ...........
STR_TO_DATE(str,format): STR_TO_DATE('1-1-1999','%m-%d-%Y') 結果:1999-01-01
DATE_FORMAT(date,format) :將日期轉換爲指定的格式
流程控制函數
- if函數
`IF`(expr1,expr2,expr3) :相當於三元運算符 - case
用法1:
case 要判斷的字段或者是表達式
when 常量1 then 要顯示的語句1或值1;
when 常量2 then 要顯示的語句2或值2;
........
else 要顯示的值或語句(默認)
end
用法2:
case
when 條件1 then 要顯示的語句1或值1;
when 條件2 then 要顯示的語句2或值2;
........
else 要顯示的值或語句(默認)
end