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<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)、需求:设置分隔符,默认为逗号,设置分隔符@。
SELECT userid,GROUP_CONCAT(score SEPARATOR ‘@‘) FROM test4 GROUP BY userid
9、ROUND() 四舍五入函数:
mysql> select round(5.2);
+------------+
| round(5.2) |
+------------+
| 5 |
+------------+
mysql> select round(5.5);
+------------+
| round(5.5) |
+------------+
| 6 |
+------------+
原文地址:http://blog.51cto.com/8757576/2159932