Mysql数据库常用的数学计算函数、字符串处理函数、条件判断函数-系列09

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)

Guess you like

Origin blog.csdn.net/LB_Captain/article/details/121434618