-
字符串函數
-
CONCAT( str1,str2,...)字符串拼接
Description: 返回結果爲連接參數產生的字符串。如有任何一個參數爲NULL ,則返回值爲 NULL。或許有一個或多個參數。如果所有參數均爲非二進制字符串,則結果爲非二進制字符串。 如果自變量中含有任一二進制字符串,則結果爲一個二進制字符串。
Example:
select id,CONCAT('http://home.imeishi.com/pai-',id,'.html') as url,uid, username from uchome_plug_pai_photo where id!='' and dateline>=1437926400 and dateline0 and classify=2 LIMIT 3
Result:
-
CONCAT_WS( separator,str1,str2,...)用separator將字符串拼接起來
Description: CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。 第一個參數是其它參數的分隔符。分隔符的位置放在要連接的兩個字符串之間。分隔符可以是一個字符串,也可以是其它參數。如果分隔符爲 NULL,則結果爲 NULL。函數會忽略任何分隔符參數後的 NULL 值。
Example:
SELECT id,uid,username,concat_ws(',',viewnum,reconum,likenum,replynum) as test FROM uchome_plug_pai_photo WHERE classify=2 AND state>0 LIMIT 3
Result:
-
FORMAT(X ,D)
Description: 將number X 設置爲格式 '#,###,###.##', 以四捨五入的方式保留到小數點後 D 位, 而返回結果爲一個字符串
Example:
select id,uid,username,format(replynum,2) as test FROM uchome_plug_pai_photo WHERE classify=2 AND state>0 LIMIT 5
Result:
-
INSERT(str ,pos,len,newstr )
Description: 返回字符串 str , 其子字符串起始於 pos 位置和長期被字符串 newstr 取代的 len 字符。 如果 pos 超過字符串長度,則返回值爲原始字符串。 假如 len 的長度大於其它字符串的長度,則從位置 pos 開始替換。若任何一個參數爲null,則返回值爲NULL。
Example:
select insert(subject,11,100,'...') FROM uchome_plug_pai_photo LIMIT 100
Result:
-
INSTR(str ,substr )
Description: 返回字符串 str 中子字符串的第一個出現位置。這和LOCATE()的雙參數形式相同,除非參數的順序被顛倒。
Example:
select os ,instr(os,'PC') as test from uchome_plug_pai_photo WHERE state>0
Result:
-
LCASE( str )
Description: LCASE() 是 LOWER()的同義詞。將str小寫
Example:
select os,lcase(os) as test from uchome_plug_pai_photo WHERE state>0
Result:
-
UPPER( str )
Description: 返回字符串 str , 以及根據最新字符集映射轉化爲大寫字母的字符 (默認爲cp1252 Latin1).
Example:
SELECT UPPER('Hej');
->HEJ
-
LEFT(str ,len)
Description: 返回從字符串 str 開始的 len 最左字符。
Example:
select subject,left(subject,10) as test FROM uchome_plug_pai_photo WHERE state>0 LIMIT 50
Result:
-
RIGHT(str ,len)
Description: 從字符串 str 開始,返回最右 len 字符。
Example:
SELECT RIGHT('foobarbar', 4);
Result:
-> 'rbar'
-
LENGTH(str )
Description: 返回值爲字符串 str 的長度,單位爲字節。一個多字節字符算作多字節。這意味着 對於一個包含5個2字節字符的字符串, LENGTH() 的返回值爲 10, 而 CHAR_LENGTH()的返回值則爲5。
Example:
select subject,length(subject) as test1,os,length(os) FROM uchome_plug_pai_photo WHERE state>0 LIMIT 50
Result:
-
LPAD( str ,len,padstr )
Description: 返回字符串 str , 其左邊由字符串 padstr 填補到 len 字符長度。假如 str 的長度大於 len, 則返回值被縮短至 len 字符。
Example:
select subject,lpad(subject,15,'_')FROM uchome_plug_pai_photo WHERE state>0 LIMIT 50
Result:
-
RPAD( str ,len,padstr )
Description: 返回字符串 str , 其右邊被字符串 padstr 填補至 len 字符長度。假如字符串 str 的長度大於 len,則返回值被縮短到與 len 字符相同長度。
Example:
select subject,rpad(subject,15,'_')FROM uchome_plug_pai_photo WHERE state>0 LIMIT 50
Result:
-
LTRIM(str )
Description: 返回字符串 str ,其引導空格字符被刪除。
Example:
Result:
-
RTRIM(str )
Description: 返回字符串 str ,結尾空格字符被刪去。
Example:
SELECT RTRIM('barbar ');
Result:
-> 'barbar'
-
TRIM([{BOTH | LEADING | TRAILING} [ remstr] FROM] str ) TRIM(remstr FROM] str )
Description: 返回字符串 str , 其中所有 remstr 前綴和/或後綴都已被刪除。若分類符BOTH、LEADIN或TRAILING中沒有一個是給定的,則假設爲BOTH 。 remstr 爲可選項,在未指定情況下,可刪除空格。
Example:
mysql> SELECT TRIM(' bar ');
-> 'bar'
mysql> SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx');
-> 'barxxx'
mysql> SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx');
-> 'bar'
mysql> SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz');
-> 'barx'
-
REPEAT(str ,count )
Description: 返回一個由重複的字符串 str 組成的字符串,字符串 str 的數目等於 count 。 若 count <= 0,則返回一個空字符串。若 str 或 count 爲 NULL,則返回 NULL 。
Example:
SELECT REPEAT('MySQL', 3);
Result:
->'MySQLMySQLMySQL'
-
REPLACE(str ,from_str,to_str )
Description: 返回字符串 str 以及所有被字符串 to_str 替代的字符串 from_str 。
Example:
select os,replace(os,'OS','os') as test FROM uchome_plug_pai_photo WHERE state>0 and os!='' LIMIT 50
Result:
-
REVERSE( str )
Description: 返回字符串 str ,順序和字符順序相反。
Example:
SELECT REVERSE('abc');
Result:
-> 'cba'
-
SUBSTRING( str ,pos) , SUBSTRING( str FROM pos) SUBSTRING( str ,pos,len) , SUBSTRING( str FROM pos FOR len)
Description: SUBSTR()是 SUBSTRING()的同義詞。不帶有 len 參數的格式從字符串 str 返回一個子字符串,起始於位置 pos 。帶有 len 參數的格式從字符串 str 返回一個長度同 len 字符相同的子字符串,起始於位置 pos 。 使用 FROM的格式爲標準 SQL 語法。也可能對 pos 使用一個負值。假若這樣,則子字符串的位置起始於字符串結尾的 pos 字符,而不是字符串的開頭位置。在以下格式的函數中可以對 pos 使用一個負值。
Example:
mysql> SELECT SUBSTRING('Quadratically',5);
-> 'ratically'mysql> SELECT SUBSTRING('Quadratically',5);
-> 'ratically'
mysql> SELECT SUBSTRING('foobarbar' FROM 4);
-> 'barbar'
mysql> SELECT SUBSTRING('Quadratically',5,6);
-> 'ratica'
mysql> SELECT SUBSTRING('Sakila', -3);
-> 'ila'
mysql> SELECT SUBSTRING('Sakila', -5, 3);
-> 'aki'
mysql> SELECT SUBSTRING('Sakila' FROM -4 FOR 2);
-> 'ki'
-
SUBSTRING_INDEX(str ,delim ,count )
Description: 在定界符 delim 以及 count 出現前,從字符串 str 返回自字符串。若 count 爲正值,則返回最終定界符(從左邊開始)左邊的一切內容。若 count 爲負值,則返回定界符(從右邊開始)右邊的一切內容。
Example:
mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2);
-> 'www.mysql'
mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', -2);
-> 'mysql.com'
-
UCASE(str )
Description: UCASE()是UPPER()的同義詞。
Example:
Result:
-
-
數學函數(若發生錯誤,所有數學函數會返回 NULL 。)
-
ABS( X )
Description: 返回 X 的絕對值。
-
ACOS(X )
Description: 返回 X 反餘弦, 即, 餘弦是 X 的值。若 X 不在-1到 1的範圍之內,則返回 NULL 。
-
ASIN( X )
Description: 返回 X 的反正弦,即,正弦爲 X 的值。若 X 若 X 不在-1到 1的範圍之內,則返回 NULL 。
-
ATAN( X )
Description: 返回 X 的反正切,即,正切爲 X 的值。
-
ATAN( Y ,X ) , ATAN2( Y ,X )
Description: 返回兩個變量 X 及 Y 的反正切。 它類似於 Y 或 X 的反正切計算, 除非兩個參數的符號均用於確定結果所在象限。
-
CEILING(X ) CEIL(X )
Description: 返回不小於 X 的最小整數值。
mysql> SELECT CEILING(1.23);
-> 2
mysql> SELECT CEIL(-1.23);
-> -1
-
CRC32(expr)
Description: 計算循環冗餘碼校驗值並返回一個 32比特無符號值。若參數爲NULL ,則結果爲 NULL。該參數應爲一個字符串,而且在不是字符串的情況下會被作爲字符串處理(若有可能)。區分大小寫
-
EXP( X )
Description: 返回e的 X 乘方後的值(自然對數的底)。
-
FLOOR(X )
Description: 返回不大於 X 的最大整數值 。
mysql> SELECT FLOOR(1.23);
-> 1
mysql> SELECT FLOOR(-1.23);
-> -2
-
MOD(N,M ) , N % M N MOD M
Description: 模操作。返回 N 被 M 除後的餘數。
-
PI()
Description: 返回 π (pi)的值。默認的顯示小數位數是7位,然而 MySQL內部會使用完全雙精度值。
-
POW(X ,Y ) , POWER(X ,Y )
Description: 返回 X 的 Y 乘方的結果值。
-
RAND() RAND( N)
Description: 返回一個隨機浮點值 v ,範圍在 0 到1 之間 (即, 其範圍爲 0 ≤ v ≤ 1.0)。若已指定一個整數參數 N ,則它被用作種子值,用來產生重複序列。
-
ROUND( X ) ROUND( X ,D)
Description: 返回參數 X , 其值接近於最近似的整數。在有兩個參數的情況下,返回 X ,其值保留到小數點後 D 位,而第 D 位的保留方式爲四捨五入。若要接保留 X 值小數點左邊的 D 位,可將 D 設爲負值。
-
SIGN( X )
Description: 返回參數作爲-1、 0或1的符號,該符號取決於 X 的值爲負、零或正。
Example:
mysql> SELECT SIGN(-32);
-> -1
mysql> SELECT SIGN(0);
-> 0
mysql> SELECT SIGN(234);
-> 1
-
-
時間和日期函數
-
CURDATE()
Description: 將當前日期按照'YYYY-MM-DD' 或YYYYMMDD 格式的值返回,具體格式根據函數用在字符串或是數字語境中而定。
Example:
mysql> SELECT CURDATE();
-> '1997-12-15'
mysql> SELECT CURDATE() + 0;
-> 19971215
-
CURTIME()
Description: 將當前時間以'HH:MM:SS'或 HHMMSS 的格式返回, 具體格式根據函數用在字符串或是數字語境中而定。
Example:
mysql> SELECT CURTIME();
-> '23:50:26'
mysql> SELECT CURTIME() + 0;
-> 235026
-
CURRENT_TIME, CURRENT_TIME()
Description: CURRENT_TIME 和CURRENT_TIME() 是CURTIME()的同義詞。
Example:
Result:
-
CURRENT_TIMESTAMP, CURRENT_TIMESTAMP()
Description: CURRENT_TIMESTAMP和 CURRENT_TIMESTAMP()是NOW()的同義詞。
Example:
Result:
-
DATE(expr)
Description: 提取日期或時間日期表達式 expr 中的日期部分。具體格式根據函數用在字符串或是數字語境中而定。
Example:
mysql> SELECT DATE('2003-12-31 01:02:03');
-> '2003-12-31'mysql->SELECT date(now());
->2015-08-05
mysql->select date(now())+0;
->20150805
-
DATEDIFF( expr,expr2)
Description: DATEDIFF() 返回起始時間 expr 和結束時間 expr2 之間的天數。 Expr 和 expr2 爲日期或 date-and-time 表達式。計算中只用到這些值的日期部分。
Example:
select now(),date(now()),datediff(now(),'2015-10-1'),datediff(now(),'2015-8-1')
Result:
-
DATE_FORMAT( date ,format)
Description: 根據 format 字符串安排 date 值的格式。
Example:
Result:
select now(),date_format(now(),'%Y年%c月%d日%T');
-
DAYNAME( date )
Description: 返回 date 對應的工作日名稱。
Example:
mysql->select now(),dayname(now());
->2015-08-06 14:31:55,Thursday
-
DAYOFMONTH(date )
Description: 返回 date 對應的該月日期,範圍是從 1到31。
Example:
Result:
-
DAYOFWEEK( date )
Description: 返回 date (1 = 週日, 2 = 週一, ..., 7 = 週六)對應的工作日索引。
Example:
Result:
-
DAYOFYEAR( date )
Description: 返回 date 對應的一年中的天數,範圍是從 1到366。
Example:
Result:
-
FROM_UNIXTIME(unix_timestamp ) , FROM_UNIXTIME(unix_timestamp ,format)
Description: 返回'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS 格式值的 unix_timestamp 參數表示,具體格式取決於該函數是否用在字符串中或是數字語境中。
Example:
select dateline,from_unixtime(dateline),from_unixtime(dateline,'%Y-%m-%d'),from_unixtime(dateline,'%T') from uchome_hongbei_fifteen_activity
Result:
-
LAST_DAY( date )
Description: 獲取一個日期或日期時間值,返回該月最後一天對應的值。若參數無效,則返回NULL。
Example:
mysql> SELECT LAST_DAY('2003-02-05');
-> '2003-02-28'
-
LOCALTIME, LOCALTIME(),LOCALTIMESTAMP, LOCALTIMESTAMP()
Description: LOCALTIME 及 LOCALTIME()和NOW()具有相同意義。LOCALTIMESTAMP和LOCALTIMESTAMP()和NOW()具有相同意義。
Example:
SELECT now(),LOCALTIME,localtime(),LOCALTIMESTAMP,localtimestamp();
Result:
-
MAKEDATE( year,dayofyear)
Description: 給出年份值和一年中的天數值,返回一個日期。 dayofyear 必須大於 0 ,否則結果爲 NULL。
Example:
mysql> SELECT MAKEDATE(2001,365), MAKEDATE(2004,365);
-> '2001-12-31', '2004-12-30'
-
MINUTE(time)
Description: 返回 time 對應的分鐘數,範圍是從 0 到 59。
Example:
mysql> SELECT MINUTE('98-02-03 10:05:03');
-> 5
-
MONTH(date )
Description: 返回 date 對應的月份,範圍時從 1 到 12。
Example:
mysql> SELECT MONTH('1998-02-03');
-> 2
-
MONTHNAME( date )
Description: 返回 date 對應月份的全名。
Example:
mysql> SELECT MONTHNAME('1998-02-05');
-> 'February '
-
QUARTER(date)
Description: 返回 date 對應的一年中的季度值,範圍是從 1到 4。
Example:
mysql> SELECT quarter(now())
-> 3
-
SUBDATE(date ,INTERVAL expr type) SUBDATE(expr,days )
Description:
Example:
mysql> SELECT MINUTE('98-02-03 10:05:03');
-> 5
-
TIME(expr)
Description: 提取一個時間或日期時間表達式的時間部分,並將其以字符串形式返回。
Example:
mysql> SELECT time(now());
-> 15:22:42
-
WEEK(date [,mode ])
Description: 該函數返回 date 對應的星期數。
Example:
mysql> SELECT WEEK('1998-02-20');
-> 7
-
mysql函數
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.