文档章节

mysql基础知识理解和sql题讲解分析面试实战(四)之函数讲解和字符串的操作

布道牛
 布道牛
发布于 2016/03/31 15:38
字数 543
阅读 53
收藏 4

mysql基础知识理解和sql题讲解分析面试实战(四)之函数讲解和字符串的操作

  • 函数的创建
  • 字符串函数的操作

用例 查询表road 下的roadname的紧挨着第一个括号的是大写字母或数字的记录

创建表
CREATE TABLE `road` (
  `id` int(10) NOT NULL,
  `roadname` varchar(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

插入数据

输入图片说明

创建函数

用mysql下创建需添加

注意:mysql 安装后默认函数是关闭的 查看创建函数的功能是否开启: mysql> show variables like '%func%'; +-----------------------------------------+-------+ | Variable_name | Value | +-----------------------------------------+-------+ | log_bin_trust_function_creators | ON | +-----------------------------------------+-------+ 1 row in set (0.02 sec) 如果Value处值为OFF,则需将其开启。 mysql> set global log_bin_trust_function_creators=1;


delimiter $$
CREATE FUNCTION isNumandupzimu(s1 varchar(16))
RETURNS TINYINT
-- 当然要以delimiter 结束

在nabvicat下创建

BEGIN
DECLARE result int DEFAULT 0;-- 0是假的
IF ISNULL(s1) then return 0; end if;
if s1 ='' then return 0;end if;
SELECT s1 REGEXP BINARY'^[0-9A-Z]+$' into result; -- REGEXP默认也是不区分大小写,需使用BINARY关键词强制区分大小
-- 查询
-- SELECT s1 REGEXP '^[0-9]+$' into result2;
if result =1 then return 1; -- 1 是真的
else return 0;
end if;
END

  • 注意 if 后面没有括号,if 后结束要紧跟 end if
执行查询
  • select INSTR('西三环(S)','('); -- instr()可以查出'(' 在字符串的哪个位置,记住mysql是以1开始计数的
  • select SUBSTR('西三环(S)',4+1,1); -- substr(str,pos,len) 可以查出字符串从那个位置到哪个位置的 返回的是子字符串 ,从第5位开始包括第5位,第5位是一个长度
  • select* from road where isNumandupzimu(SUBSTR(roadname,INSTR(roadname,'(')+1,1)) = 1;-执行结果

输入图片说明

结论

  • 该章让你可以掌握自定义函数和函数的调用
  • 对字符串函数的基本掌握
  • QQ大数据交流群:181666459

© 著作权归作者所有

布道牛
粉丝 11
博文 37
码字总数 27377
作品 0
西安
后端工程师
私信 提问
mysql基础知识理解和sql题讲解分析面试实战(三)之group_concat

mysql基础知识理解和sql题讲解分析面试实战(一)之group_concat group_concat 将同一字段的多行内容以一定的函数合成一行内容 用例 sql 语句如下 该用例主要考察group_concat ~~~ sql 如题:...

布道牛
2016/03/31
70
0
新书出版 |《数据库程序员面试笔试宝典》

新书出版 《数据库程序员面试笔试宝典》 新书出版 《数据库程序员面试笔试宝典》 书名: 数据库程序员面试笔试宝典 作者:李华荣 定价: 69.00元 出版社名称: 机械工业出版社 出版时间: 2018年...

小麦苗
2018/08/07
0
0
金秋十月书讯 | 超出你的预期

十月,丰收的季节,这个月,人民邮电出版社异步社区的重磅新书非常集中,值得本月收藏。更多精品图书可以访问社区:http://www.epubit.com.cn/ 本期好书太多啦,小编都不知道先推荐哪一本了。...

生气的散人
2015/10/15
854
0
Java开发

JVM 内存溢出实例 - 实战 JVM(二) 介绍 JVM 内存溢出产生情况分析 Java - 注解详解 详细介绍 Java 注解的使用,有利于学习编译时注解 Java 程序员快速上手 Kotlin 11 招 这篇文章主要是写给...

掘金官方
2018/01/04
0
0
全网首发mpvue课程小程序全栈开发视频课程 小程序实战教程 完整版

第1章 课程简介 本章节介绍了课程概述,教学方式 ,还有小程序项目的演示。 第2章 原生小程序 对原生小程序做一个入门的介绍,包括小程序帐号申请和开发工具安装和使用,小程序目录文件的讲解...

qq5b46e049de5e3
2018/07/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

URL/URI/URN的认识

这两天在写代码的时候,由于涉及到资源的位置,因此,需要在Java Bean中定义一些字段,用来表示资源的位置,比如:imgUrl,logoUri等等。但是,每次定义的时候,心里都很纠结,是该用imgUrl还...

WinkJie
16分钟前
0
0
vs2017 踩坑

好久没有使用vs2017,改了下代码,启动调试进行测试,一没有注意,就启动了。 然后 ,悲剧了,,,就有下面的问题。 VS断点提示:当前不会命中断点。还没有为该文档加载任何符号 然后百度了下,...

轻轻的走过
17分钟前
1
0
解决一个emqttd trace 无法打开的问题

emqttd这个东西做的真心不咋地,之前有emq_auth_mysql的plugin死活无法启动的问题,现在又碰到trace无法打开的问题。 查看emqttd服务器当前连接的所有client: emqttd_ctl clients list 要打...

莫在全
24分钟前
1
0
java wsdl 中不显示参数属性类型的问题解决方案

CXF3.0.1解决方案: 配合spring方式 <jaxws:endpoint id="receiveUMSMessageService" implementor="com.sw.extInterface.webservice.service.impl.ReceiveUMSMessageServiceImpl" address="......

嘿嘿嘿IT
27分钟前
0
0
go alpine docker image 搭建

Dockerfile 搭建 目录结构 --Dockerfile--main.go 写一个go的helloworld package mainimport ("fmt""log""net/http")func main() {http.HandleFunc("/", hello)err := ht......

solate
33分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部