mysql常用的 数值处理函数 有以下几种:分别是取整函数 ROUND()、CEIL()、FLOOR(),绝对值函数 ABS() 和求余函数 MOD()。
向上取整 CEIL(X) 和 CEILING(X):返回大于等于 X 的最小 INT 型整数。
向下取整 FLOOR(X):返回小于等于 X 的最大 INT 型整数。
舍入函数 ROUND(X,D):X 表示要处理的数,D 表示保留的小数位数,处理的方式是四舍五入。ROUND(X) 表示保留 0 位小数。
ABS(X)表示获取 X 的绝对值;
MOD(X,Y)表示获取 X 被 Y 除后的余数。
mysql常用的 字符串处理函数 :
CONCAT(s1,s2,...):表示把字符串 s1、s2……拼接起来,组成一个字符串。
CAST(表达式 AS CHAR):表示将表达式的值转换成字符串。
CHAR_LENGTH(字符串):表示获取字符串的长度。
SPACE(n):表示获取一个由 n 个空格组成的字符串。
网上找了例子:
mysql> SELECT
-> CONCAT(goodsname, '(', specification, ')') AS 商品信息 -- 这里把商品名称、括号和规格拼接起来
-> FROM
-> demo.goodsmaster
-> WHERE itemnumber = 1;
+----------+
| 商品信息 |
+----------+
| 书(16开) |
+----------+
1 row in set (0.00 sec)
mysql> SELECT
-> CAST(quantity AS CHAR) -- 把decimal类型转换成字符串
-> FROM
-> demo.transactiondetails
-> WHERE
-> transactionid = 1 AND itemnumber =1;
+---------------------+
| CAST(price AS CHAR) |
+---------------------+
| 2.000 |
+---------------------+
1 rows in set (0.00 sec)
mysql> SELECT
-> CHAR_LENGTH(CAST(quantity AS CHAR)) AS 长度
-> FROM
-> demo.transactiondetails
-> WHERE
-> transactionid = 1 AND itemnumber =1;
+---------------------+
| 长度 |
+---------------------+
| 5 |
+---------------------+
1 rows in set (0.00 sec)
mysql> SELECT
-> CONCAT(CAST(quantity AS CHAR),
-> SPACE(7 - CHAR_LENGTH(CAST(quantity AS CHAR)))) AS 数量
-> FROM
-> demo.transactiondetails
-> WHERE
-> transactionid = 1 AND itemnumber = 1;
+----------+
| 数量 |
+----------+
| 2.000 |
+----------+
1 row in set (0.00 sec)
另外还有一些其他的处理函数:
mysql 条件判断函数:
IFNULL(V1,V2):表示如果 V1 的值不为空值,则返回 V1,否则返回 V2。
IF(表达式,V1,V2):如果表达式为真(TRUE),则返回 V1,否则返回 V2。
mysql> SELECT
-> goodsname,
-> specification,
-> -- 这里做判断,如果是空值,返回商品名称,否则就拼接规格
-> IF(ISNULL(specification),
-> goodsname,
-> CONCAT(goodsname, '(', specification, ')')) AS 拼接
-> FROM
-> demo.goodsmaster;
+-----------+---------------+----------+
| goodsname | specification | 拼接 |
+-----------+---------------+----------+
| 书 | 16开 | 书(16开) |
| 笔 | NULL | 笔 |
+-----------+---------------+----------+
2 rows in set (0.02 sec)