mysql常用function

前言: 本文主要是参考mysql官方文档,并加上自己的测试用例,来加深自己对mysql函数的理解,也借此平台与大家分享,如有不妥和错误之处欢迎读者评论,我会及时改正,愿与大家一起学习进步。

概述: 所谓function(特指mysql函数)就是mysql服务器预先编写的函数,来供我们使用。这些函数可用在where,ORDER BY ,HAVING用于查询条件,也可用于select之后用于显示给我们....比较难概述呵呵。

注意:默认情况下,函数名称和后面的括号之间不应有空格 ,例如CONCAT('My',  'S',  'QL')。这有助于MySQL解析器区分函数调用和对恰好与函数同名的表或列的引用。是否可以使用和--sql-mode=IGNORE_SPACE有关。

零:1TRUE)或 0FALSE

一:流程控制 

1.1 CASE

语法一:
CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END
语法二:
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END

eg1(语法1):SELECT CASE 1 WHEN 1 THEN 'one'  WHEN 2 THEN 'two' ELSE 'more' END;     -> 'one'

eg2(语法2):SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END;        -> 'true'

1.2 IF(expr1,expr2,expr3)  如果表达式1成立,则输出2,否则输出2

eg1: mysql>  SELECT IF(1>2,2,3);    -> 3

eg2: select if(count(a)=22,'yes','no') from test where a='a';  

1.3 IFNULL(expr1,expr2)   NULLIF(expr1,expr2)

二:字符串比较like  

语法:expr LIKE pat [ESCAPE 'escape_char']   //可选参数escape 是指定转义字符

eg:SELECT 'a' = 'a ', 'a' LIKE 'a '; // 注意空格  like和=的区别

SELECT 'a' = 'a ', 'a' LIKE 'a ';
+------------+---------------+
| 'a' = 'a ' | 'a' LIKE 'a ' |
+------------+---------------+
|          1 |             0 |
+------------+---------------+

like:统配符   

  • 匹配0个或多个字符。

  • 只匹配一个字符。

eg2 :mysql> SELECT 'David!' LIKE 'David_';     -> 1

  mysql> SELECT 'David!' LIKE '%D%v%';    -> 1:

转义字符:

eg3:mysql> SELECT 'David!' LIKE 'David\_';    -> 0

  mysql> SELECT 'David_' LIKE 'David\_';    -> 1

指定转义字符‘’

  mysql> SELECT 'David_' LIKE 'David|_' ESCAPE '|'; -> 1

 

三:正则表达式 参考文献

 ^ : 匹配开头  

mysql> SELECT 'fofo' REGEXP '^fo$';                   -> 0
mysql> SELECT 'fofo' REGEXP '^fo';                      -> 1

$ :匹配尾部

mysql> SELECT 'fofo' REGEXP '^fofo$';                 -> 1

.   :匹配任意字符

SELECT 'fofo' REGEXP '^f.*$';
+-----------------------+
| 'fofo' REGEXP '^f.*$' |
+-----------------------+
|                     1 |
+-----------------------+

a*  :匹配零个或多个a 字符(*修饰前一个符号)

mysql> SELECT 'Ban' REGEXP '^Ba*n'; -> 1 
mysql> SELECT 'Baaan' REGEXP '^Ba*n'; -> 1


SELECT
'Bn' REGEXP '^B.*n$'; +----------------------+ | 'Bn' REGEXP '^B.*n$' | +----------------------+ | 1 | +----------------------+

a? :匹配零个或一个a字符 (?修饰前一个符号)

mysql> SELECT 'Bn' REGEXP '^Ba?n';                      -> 1
mysql> SELECT 'Ban' REGEXP '^Ba?n';                     -> 1
mysql> SELECT 'Baan' REGEXP '^Ba?n';                    -> 0

de|abc :或 

mysql> SELECT 'pi' REGEXP 'pi|apa';                     -> 1
mysql> SELECT 'axe' REGEXP 'pi|apa';                    -> 0
mysql> SELECT 'apa' REGEXP 'pi|apa';                    -> 1
mysql> SELECT 'apa' REGEXP '^(pi|apa)$';                -> 1
mysql> SELECT 'pi' REGEXP '^(pi|apa)$';                 -> 1
mysql> SELECT 'pix' REGEXP '^(pi|apa)$';                -> 0

(abc)* :()里面是个整体  匹配0个或多个()中的内容

mysql> SELECT 'pi' REGEXP '^(pi)*$';                    -> 1
mysql> SELECT 'pip' REGEXP 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值