mysql函數

  • 字符串函數

    1. 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:

       

    2. 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:

    3. FORMAT(X ,D)

      Description: 將number X 設置爲格式 '#,###,###.##', 以四捨五入的方式保留到小數點後 D 位, 而返回結果爲一個字符串

      Example:

      select id,uid,username,format(replynum,2) as test FROM uchome_plug_pai_photo WHERE classify=AND state>0 LIMIT 5

      Result:

    4. 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:

    5. INSTR(str ,substr )

      Description: 返回字符串 str 中子字符串的第一個出現位置。這和LOCATE()的雙參數形式相同,除非參數的順序被顛倒。

      Example:

      select os ,instr(os,'PC') as test from uchome_plug_pai_photo WHERE state>0

      Result:

    6. LCASE( str )

      Description: LCASE() 是 LOWER()的同義詞。將str小寫

      Example:

      select os,lcase(os) as test from uchome_plug_pai_photo WHERE state>0

      Result:

    7. UPPER( str )

      Description: 返回字符串 str , 以及根據最新字符集映射轉化爲大寫字母的字符 (默認爲cp1252 Latin1).

      Example:

      SELECT UPPER('Hej');

      ->HEJ

    8. 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:

    9. RIGHT(str ,len)

      Description: 從字符串 str 開始,返回最右 len 字符。

      Example:

      SELECT RIGHT('foobarbar', 4);

      Result:

      -> 'rbar'

    10. 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:

    11. 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:

    12. RPAD( str ,len,padstr )

      Description: 返回字符串 str , 其右邊被字符串 padstr 填補至 len 字符長度。假如字符串 str 的長度大於 len,則返回值被縮短到與 len 字符相同長度。

      Example:

      select subject,rpad(subject,15,'_')FROM uchome_plug_pai_photo WHERE state>LIMIT 50

      Result:

    13. LTRIM(str )

      Description: 返回字符串 str ,其引導空格字符被刪除。

      Example:

      Result:

    14. RTRIM(str )

      Description: 返回字符串 str ,結尾空格字符被刪去。

      Example:

      SELECT RTRIM('barbar   ');

      Result:

      -> 'barbar'

    15. 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'

    16. REPEAT(str ,count )

      Description: 返回一個由重複的字符串 str 組成的字符串,字符串 str 的數目等於 count 。 若 count <= 0,則返回一個空字符串。若 str 或 count 爲 NULL,則返回 NULL 。

      Example:

      SELECT REPEAT('MySQL', 3);

      Result:

      ->'MySQLMySQLMySQL'

    17. 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:

    18. REVERSE( str )

      Description: 返回字符串 str ,順序和字符順序相反。

      Example:

      SELECT REVERSE('abc');

      Result:

      -> 'cba'

    19. 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'

    20. 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'

    21. UCASE(str )

      Description: UCASE()是UPPER()的同義詞。

      Example:

      Result:

  • 數學函數(若發生錯誤,所有數學函數會返回 NULL 。)

    1. ABS( X )

      Description: 返回 X 的絕對值。

    2. ACOS(X )

      Description: 返回 X 反餘弦, 即, 餘弦是 X 的值。若 X 不在-1到 1的範圍之內,則返回 NULL 。

    3. ASIN( X )

      Description: 返回 X 的反正弦,即,正弦爲 X 的值。若 X   若 X 不在-1到 1的範圍之內,則返回 NULL 。

    4. ATAN( X )

      Description: 返回 X 的反正切,即,正切爲 X 的值。

    5. ATAN( Y ,X ) , ATAN2( Y ,X )

      Description: 返回兩個變量 X 及 Y 的反正切。 它類似於 Y 或 X 的反正切計算, 除非兩個參數的符號均用於確定結果所在象限。

    6. CEILING(X ) CEIL(X )

      Description: 返回不小於 X 的最小整數值。

      mysql> SELECT CEILING(1.23);

      -> 2

      mysql> SELECT CEIL(-1.23);

      -> -1

    7. CRC32(expr)

      Description: 計算循環冗餘碼校驗值並返回一個 32比特無符號值。若參數爲NULL ,則結果爲 NULL。該參數應爲一個字符串,而且在不是字符串的情況下會被作爲字符串處理(若有可能)。區分大小寫

    8. EXP( X )

      Description: 返回e的 X 乘方後的值(自然對數的底)。

    9. FLOOR(X )

      Description: 返回不大於 X 的最大整數值 。

      mysql> SELECT FLOOR(1.23);

      -> 1

      mysql> SELECT FLOOR(-1.23);

      -> -2

    10. MOD(N,M ) , N % M N MOD M

      Description: 模操作。返回 N 被 M 除後的餘數。

    11. PI()

      Description: 返回 π (pi)的值。默認的顯示小數位數是7位,然而 MySQL內部會使用完全雙精度值。

    12. POW(X ,Y ) , POWER(X ,Y )

      Description: 返回 X 的 Y 乘方的結果值。

    13. RAND() RAND( N)

      Description: 返回一個隨機浮點值 v ,範圍在 0 到1 之間 (即, 其範圍爲 0 ≤ v ≤ 1.0)。若已指定一個整數參數 N ,則它被用作種子值,用來產生重複序列。

    14. ROUND( X ) ROUND( X ,D)

      Description: 返回參數 X , 其值接近於最近似的整數。在有兩個參數的情況下,返回 X ,其值保留到小數點後 D 位,而第 D 位的保留方式爲四捨五入。若要接保留 X 值小數點左邊的 D 位,可將 D 設爲負值。

    15. SIGN( X )

      Description: 返回參數作爲-1、 0或1的符號,該符號取決於 X 的值爲負、零或正。

      Example:

      mysql> SELECT SIGN(-32);

      -> -1

      mysql> SELECT SIGN(0);

      -> 0

      mysql> SELECT SIGN(234);

      -> 1

       

  • 時間和日期函數

    1. CURDATE()

      Description: 將當前日期按照'YYYY-MM-DD' 或YYYYMMDD 格式的值返回,具體格式根據函數用在字符串或是數字語境中而定。

      Example:

      mysql> SELECT CURDATE();

      -> '1997-12-15'

      mysql> SELECT CURDATE() + 0;

      -> 19971215

    2. CURTIME()

      Description: 將當前時間以'HH:MM:SS'或 HHMMSS 的格式返回, 具體格式根據函數用在字符串或是數字語境中而定。

      Example:

      mysql> SELECT CURTIME();

      -> '23:50:26'

      mysql> SELECT CURTIME() + 0;

      -> 235026

    3. CURRENT_TIME, CURRENT_TIME()

      Description: CURRENT_TIME 和CURRENT_TIME() 是CURTIME()的同義詞。

      Example:

      Result:

    4. CURRENT_TIMESTAMP, CURRENT_TIMESTAMP()

      Description: CURRENT_TIMESTAMP和 CURRENT_TIMESTAMP()是NOW()的同義詞。

      Example:

      Result:

    5. 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

    6. 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:

       

    7. DATE_FORMAT( date ,format)

      Description: 根據 format 字符串安排 date 值的格式。

      Example:

      Result:

       select now(),date_format(now(),'%Y年%c月%d日%T');

    8. DAYNAME( date )

      Description: 返回 date 對應的工作日名稱。

      Example:

      mysql->select now(),dayname(now());

      ->2015-08-06 14:31:55,Thursday

    9. DAYOFMONTH(date )

      Description: 返回 date 對應的該月日期,範圍是從 1到31。

      Example:

      Result:

    10. DAYOFWEEK( date )

      Description: 返回 date (1 = 週日, 2 = 週一, ..., 7 = 週六)對應的工作日索引。

      Example:

      Result: 

    11. DAYOFYEAR( date )

      Description: 返回 date 對應的一年中的天數,範圍是從 1到366。

      Example:

      Result:

    12. 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:

       

    13. LAST_DAY( date )

      Description: 獲取一個日期或日期時間值,返回該月最後一天對應的值。若參數無效,則返回NULL。

      Example:

      mysql> SELECT LAST_DAY('2003-02-05');

      -> '2003-02-28'

    14. LOCALTIME, LOCALTIME(),LOCALTIMESTAMP, LOCALTIMESTAMP()

      Description: LOCALTIME 及 LOCALTIME()和NOW()具有相同意義。LOCALTIMESTAMP和LOCALTIMESTAMP()和NOW()具有相同意義。

      Example:

      SELECT now(),LOCALTIME,localtime(),LOCALTIMESTAMP,localtimestamp();

      Result:

       

    15. MAKEDATE( year,dayofyear)

      Description: 給出年份值和一年中的天數值,返回一個日期。 dayofyear 必須大於 0 ,否則結果爲 NULL。

      Example:

      mysql> SELECT MAKEDATE(2001,365), MAKEDATE(2004,365);

      -> '2001-12-31', '2004-12-30'

    16. MINUTE(time)

      Description: 返回 time 對應的分鐘數,範圍是從 0 到 59。

      Example:

      mysql> SELECT MINUTE('98-02-03 10:05:03');

      -> 5

    17. MONTH(date )

      Description: 返回 date 對應的月份,範圍時從 1 到 12。

      Example:

      mysql> SELECT MONTH('1998-02-03');

      -> 2

    18. MONTHNAME( date )

      Description: 返回 date 對應月份的全名。

      Example:

      mysql> SELECT MONTHNAME('1998-02-05');

      -> 'February '

    19. QUARTER(date)

      Description: 返回 date 對應的一年中的季度值,範圍是從 1到 4。

      Example:

      mysql> SELECT quarter(now())

      -> 3

    20. SUBDATE(date ,INTERVAL expr type) SUBDATE(expr,days )

      Description: 

      Example:

      mysql> SELECT MINUTE('98-02-03 10:05:03');

      -> 5

    21. TIME(expr)

      Description: 提取一個時間或日期時間表達式的時間部分,並將其以字符串形式返回。

      Example:

      mysql> SELECT time(now());

      -> 15:22:42

    22. WEEK(date [,mode ])

      Description: 該函數返回 date 對應的星期數。

      Example:

      mysql> SELECT WEEK('1998-02-20');

      -> 7

發佈了11 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章