1. 程式人生 > >mysql常用的函數

mysql常用的函數

數值 多個參數 如果 group by concat ron sha 分數 cas

1、IF(expr1,expr2,expr3)函數:

如果 expr1 是TRUE ,則 IF()的返回值為expr2; 否則返回值則為 expr3。

IF() 的返回值為數字值或字符串值,具體情況視其所在語境而定。

例:
技術分享圖片

2、IFNULL(expr1,expr2)函數:

如果expr1 不為 NULL,則 IFNULL() 的返回值為 expr1; 否則其返回值為 expr2。

IFNULL()的返回值是數字或是字符串,具體情況取決於其所使用的語境。

技術分享圖片
3、CONCAT(str1,str2,...) 函數:
返回結果為連接參數產生的字符串。如有任何一個參數為NULL ,則返回值為 NULL。

或許有一個或多個參數。 如果所有參數均為非二進制字符串,則結果為非二進制字符串。
如果自變量中含有任一二進制字符串,則結果為一個二進制字符串。
一個數字參數被轉化為與之相等的二進制字符串格式;
若要避免這種情況,可使用顯式類型 cast,
例如: SELECT CONCAT(CAST(int_col AS CHAR), char_col)
技術分享圖片
4、INSTR(str,substr) 函數:
返回字符串 str 中子字符串的第一個出現位置。如果找不到返回0.
技術分享圖片
5、FLOOR(數值) 取整函數:
技術分享圖片
6、LEFT(數值) 字符串截取函數:
技術分享圖片
7、cast() 類型轉換函數:
為了進行數據類型轉化,mysql提供了cast()函數,它可以把一個值轉化為指定的數據類型。
數據類型有:binary,char,date,time,datetime,signed,unsigned
技術分享圖片
8、group_concat() 類型轉換函數:
用法:group_concat([DISTINCT] 要連接的字段 [Order BY ASC/DESC 排序字段] [Separator ‘分隔符‘])
技術分享圖片
(1)、需求:每個userid為一行 ,並且每行顯示該userid的所有分數。
SELECT userid,GROUP_CONCAT(score) FROM test GROUP BY userid
技術分享圖片
(2)、需求:去重復score
SELECT userid,GROUP_CONCAT(DISTINCT score) FROM test4 GROUP BY userid
技術分享圖片
(3)、需求:排序score
SELECT userid,GROUP_CONCAT(score ORDER BY score DESC) FROM test4 GROUP BY userid<![](http://i2.51cto.com/images/blog/201806/26/e0f7d8d844207b743474e25c90891f93.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
(4)、需求:設置分隔符,默認為逗號,設置分隔符@。
br/>![](http://i2.51cto.com/images/blog/201806/26/e0f7d8d844207b743474e25c90891f93.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
(4)、需求:設置分隔符,默認為逗號,設置分隔符@。
技術分享圖片

9、ROUND() 四舍五入函數:
mysql> select round(5.2);

+------------+

| round(5.2) |

+------------+

| 5 |

+------------+

mysql> select round(5.5);

+------------+

| round(5.5) |

+------------+

| 6 |

+------------+

mysql常用的函數