1. 程式人生 > >MySQL-常用函式

MySQL-常用函式

#一:字串擷取處理 
#注:mysql中處理字串時,預設第一個字元下標為1
SELECT LEFT('123456789',2) #left(str, length) 說明:left(被擷取欄位,擷取長度) 
SELECT RIGHT('123456789',2) #right(str, length) 說明:right(被擷取欄位,擷取長度)
#substring(str, pos, length)說明:substring(被擷取欄位,從第幾位開始擷取),substring(被擷取欄位,從第幾位開始擷取,擷取長度),注:如果位數是負數 如-5 則是從倒數5位擷取,到字串結束或擷取的長度
SELECT SUBSTRING('123456789',2)
SELECT SUBSTRING('123456789',-2)
SELECT SUBSTRING('123456789',-3,2)
#如果關鍵字出現的次數是正數 如2 從左邊第2個開始選取左邊的),如果關鍵字出現的次數是負數 如-2 從右邊第2個開始選取右邊的) 
SELECT SUBSTRING_INDEX("blog.jb51.net",".",2)
SELECT INSTR ("123456789","2") #INSTR (STRING ,SUBSTRING ):返回substring首次在string中出現的位置,不存在返回0
SELECT LENGTH ("ab") #string長度
SELECT REPLACE ("1211212112212" ,"1" ,"2" ) #REPLACE (str ,search_str ,replace_str 在str中用replace_str替換search_str
SELECT CONCAT("1",SPACE(5),"1") AS TEMP; #SPACE(count) 生成count個空格


#二:日期處理函式
SELECT CURDATE() #獲取當前日期
SELECT CURTIME() #獲取當前時間
SELECT NOW() #獲取日期時間
SELECT DATE(NOW()) #返回日期部分

SELECT DAYOFYEAR (NOW())#一年中的第幾天
SELECT WEEK (NOW()) #一年中的第幾周
SELECT YEAR (NOW()) #獲取當前年: year(time)
SELECT MONTH(NOW()) #獲取當前月; month(time),monthname(time)
SELECT DAY(NOW()) #獲取當前天; day(time)
SELECT HOUR (NOW()) #獲取當前小時:hour(time)
SELECT MINUTE (NOW()) #獲取當前分鐘:minute(time)
SELECT SECOND (NOW()) #獲取當前分秒:SECOND(time) 
SELECT DAYNAME(NOW()) #從時間中選擇出今天是周幾:weekday(date),dayname(date)

SELECT SUBDATE(NOW(),1) #間減去後面的day
SELECT DATE_ADD(CURDATE(),INTERVAL 1 DAY); #加一天
SELECT DATEDIFF('2018-05-22','2018-05-25'); #兩個日期差
SELECT TIMEDIFF('12:27:46','1:25:45') #兩個時間差
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %k:%i:%s') #時間格式化函式
SELECT TIME_TO_SEC(NOW()) #時間轉秒數
SELECT SEC_TO_TIME (62399) #秒數轉成時間

 

#三:拼接處理函式
SELECT CONCAT('大','小')
SELECT CONCAT('大',NULL)
SELECT CONCAT_WS('_','大','小','中')
SELECT CONCAT_WS('_','大','小',NULL)
#語法:group_concat( [distinct] 要連線的欄位 [order by 排序欄位 asc/desc ] [separator '分隔符'] )
SELECT NAME,GROUP_CONCAT(DISTINCT CONCAT_WS('-',id,`attribute_name`,`sell_price`) ORDER BY id ASC SEPARATOR ",") FROM `order_product` GROUP BY `name`


#四:其它常用函式
SELECT CHAR_LENGTH("ab") #獲取字串字元數函式:char_length(str)
SELECT UCASE("ab") #轉換大寫 ucase(x)
SELECT LCASE("AB") #轉換小寫 lcase(x)
SELECT TRIM(" abcd ") #去除字串str兩邊的空格
SELECT ROUND('12.356',2) #四捨五入函式:round(x,y)
SELECT FORMAT('2.356',2) #數字x進行格式化
SELECT STRCMP(12,10) #STRCMP(expr1,expr2),expr1>expr2:1,expr1=expr2:0,expr1<expr2:-1
SELECT SIGN(-12) #SIGN (number2 ) // 正數返回1,負數返回-1
SELECT LEAST(1,-2,3,4) #LEAST (number,number2 [,..]) //求最小值


#五:系統資訊函式
SELECT VERSION() #函式返回資料庫的版本號;
SELECT CONNECTION_ID() #函式返回伺服器的連線數,也就是到現在為止MySQL服務的連線次數;
SELECT DATABASE() #和SCHEMA()返回當前資料庫名。
SELECT USER() #返回當前使用者的名稱