(4)mysql 中的常用函式

林灣村龍貓發表於2017-01-18

概述

mysql提供了很多內建函式,其中常用的函式有:

  • 字串函式
  • 日期函式
  • 數值函式

我一般建議,能在後臺語言(php,java,c#等)中使用的類似函式,就在後臺語言中使用,這樣減少mysql壓力,和保證邏輯性。

字串函式

函式 功能
合併字串
concat(s1,s2,...,sn) 連結s1,s2,...,s3為一個字串
concat_ws(sp,s1,s2,...,s3) 將s1,s2…,sn連線成字串,並用sep字元間隔
repeat(str,x) 將字串str重複x次,是concat函式子集
lpad(str,n,pad) 用字串pad對str最左邊進行填充,直到長度為n個字元長度
rpad(str,n,pad) 用字串pad對str最右邊進行填充,直到長度為n個字元長度
過濾字串
trim(str) 去掉字串str行尾和行頭的空格
ltrim(str) 去掉字串str行頭的空格
rtrim(str) 去掉字串str行尾的空格
lower(str) 將字串str中所有的字元都變為小寫的
upper(str) 將字串str中所有的字元都變為大寫的
擷取字串
left(str,x) 返回字串str最左邊的x個字元
right(str,x) 返回字串str最右邊的x個字元
substr(str,x,y) 擷取字串str從x位置起y個字元長度的子字串
position(substr,str) 返回子串substr在字串str中第一次出現的位置
替換字串
replace(str,a,b) 用字串b替換字串str中所有出現的字串a
insert(str,x,y,instr) 將字串str從第x位置開始,y個字串長的子串替換為字串instr
字串長度
length(str) 獲取字串str儲存時候的位元組數
char_length(str) 獲取字串str中的字元個數
bit_length(str) 獲取字串str儲存時候的bit位數
雜項
strcmp(s1,s2) 比較字串s1和字串s2
quote(str) 用反斜槓轉義str中的單引號
reverse(str) 反轉字串str
ascii(char) 獲取字元ASCII碼
#舉例,length,char_length,bit_length
select catename,length(catename),
       char_length(catename),bit_length(catename)
from yz_category;複製程式碼

(4)mysql 中的常用函式
sql函式

數值函式

函式 功能
abs(x) 返回x的絕對值
ceil(x) 返回大於x的最小整數值
floor(x) 返回小於x的最大整數值
mod(x,y) 返回x/y的模
rand() 返回0~1內的隨機值
round(x,y) 返回引數x的四捨五入的y位小數值
truncate(x,y) 返回數字x截斷為y位小數的結果

日期和時間函式

函式 功能
curdate() 返回當前日期
curtime() 返回當前時間
now() 返回當前的日期和時間
unix_timestamp(date) 返回日期date的unix時間戳
from_unixtime 返回unix時間戳的日期值
week(date) 返回date為一年中的第幾周
year(date) 返回date的年份
hour(time) 返回time的小時值
minute(time) 返回time的分鐘值
monthname(date) 返回date的月份名
date_format(date,fmt) 返回字串fmt格式化日期date值
date_add(date,interval expr type) 返回一個日期或時間值加上一個時間間隔的時間值
datediff(expr,expr2) 返回起始時間expr和結束時間expr2之間的天數

詳細資訊與舉例參見:《深入淺出MySQL資料庫開發、優化與管理維護》(第2版)P79-第5章常用函式。

相關文章