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

如果没有 条件是真,则 返回else 中的结果,如果没有else 则返回 null

2 if(expr1,expr2,expr3)

如果 expr1是真,且不是 0 或null,返回 expr2,否则返回 expr3

3 ifnull(expr1,expr2)

如果 expr1 不是null,返回 expr1,否则返回expr2

4 nullif(expr1,expr2) return null if expr1=expr2

如果 expr1=expr2 是真 则返回 null,否则返回 expr1 相当于:case when expr1=expr2 then null else expr1 end.

5 操作字符串位置的函数,第一个位置的索引为1
对于接受长度参数,如果 不是整数,由四舍五入到最近的整数

6 concat(str1,str2,...)如果有参数是null,则返回null

7 select 'my' 's' 'ql';可得到连接的字符串

8 concat_ws(separator,str1,str2,....) 使用分隔符连接字符串。如果分隔符是null 则返回null,不会跳过分隔符后的 空字符串,会跳过分隔符后的null值

9 elt(n,str1,str2,str3....) 返回第n个元素 从1开始。如果n小于1 或大于 参数数量 则返回null,是field()的补充

10 field(str,str1,str2,str3,...) 返回str在其后的参数中的位置,如果没有找到则返加0,如果str是null ,返回0

11 find_in_set(str,strlist) strlist 是由,分隔的字符串,返回 str 在strlist中的位置,SELECT FIND_IN_SET('b','a,b,c,d');

如果str不在strlist中或strlist是空的字符串,返回0,如果任何一个参数是null则返回null,

如果第一个参数包含逗号,则不能正常执行。

12 format(X,D[,locale]) 格式化数字X 取近似值到D个小数,返回值是字符串,如果D是0,返回值没有小数位。第3个可选参数可指定一个区域格式化小数位,默认为 'en_US'

format(123.55,1);

13 from_base64(str); 将用to_base64()编码的字符串,解码为字符串,如果参数不是有效的64位编码字符串,返回null

select from_base64(to_base64('abc'));

to_base64(str)将字符串参数转化为64位编码字符串

14 insert(str,pos,len,newstr);

返回从pos 位置开始长度为len 字符串替换为 newstr的新字符串。如果 pos没有在str中,则返回原字符串,如果len位置大于剩余字符串,则返回字符串中没有剩余字符串。insert('abcdef',2,4,'the')

15 instr(str,substr); 返回 substr在str中的第一个匹配位置

16 lcase(str) 同 lower()

lower()对二进制字符串无效 binary varbinary blob,转化为非二进制字符串

ucase(str) 同 upper() 返回所有字符的大写字母

set @str= bynary 'New'; select Lower(@str); select Lower(convert(@str using latin1));

17 left(str,len);从str返回最左侧的长度为len的字符串

right(str,len)从str返回最右侧长度为len的字符串

18 length(str):返回字符串的长度,按字节返回,汉字返回 2,char_length()返回1

octet_length(str)

19 locate(substr,str) 返回substr在str中的位置

locate(substr,str,pos) 返回substr在str中从pos开始的位置

postion(substr in str)

如果没有找到,返回0,如果substr 或 str中有一个null,则返回null

20 LPAD(str,len,padstr) 返回str使用padstr填充str左侧到len长度,如果 str长度大于len 则返回len个字符

RPAD(str,len,padstr)右侧填充padstr到str

21 LTRIM(str):去掉字符串的左侧空格

Rtrim(str):去掉字符串右侧空格

Trim([{both | leading | trailing}[remstr] from ] str)

Trim([remstr from ]str)

返回去掉了前缀或后缀的 remstr 的字符串str。如果没有指定 both/leading/trailing,默认为both.如 果没有指定 remstr ,移除空格

select trim('  bar  '); select trim (leading 'x' from 'xxxbarxx');select trim(both 'x' from 'xxbarxx');select trim(trailing 'x' from 'xbarx');

22 MID(str,pos,len) 同substring(str,pos,len)

substr(str,pos),substr(str from pos);substr(str,pos,len),substr(str from pos for len)

substring(str,pos),substring(str from pos),substring(str,pos,len),substring(str from pos for len)

pos可以是负数,表示从字符串的结尾开始向后取值

23 oct(N)转化为8进制

24 quote(str) 对str 加单引号

25 repeat(str,count);返回str重复count次的字符,如果count小于1 则返回空字符串,如果参数有一个为null则返回null

26 replace(str,from_str,to_str); 返回字符串 str中所有的用to_str替换from_str 后的字符串 ,from_str 大小写敏感

27 reverse(str)反转字符串

28 space(N)返回包含N个空格的字符串

29 substring_index(str,delim,count) 返回字符串从str中取第count个分隔符前的字符串。如果count是负数,则从结尾向前取第count个分隔符之后的字符串

select substring_index('www.mysql.com','.',2)

select substring_index('www.mysql.com','.',-2)

30 expr like pat [escape 'escape_char'] :空格有效

select 'a'='a ','a' like 'a ';

可使用通配符:% 配置任何数量的字符,包括0个字符;_ 匹配确切的一个字符

使用escape子句-指定不用的转义字符:select 'david_' like 'david|_' escape '|';

escape 子句应该是空或是1个字符长,表达式在执行时必须是一个常量

mysql允许在数字表达式中 使用like select 10 like '1%'

在like 字符串中必须用双\ 表示一个\

expr not like pat [escape 'escape_char']

null not like  总是返回 null

31 strcmp(expr1,expr2) 如果字符串相同返回0,如果expr1 小于 expr2 返回-1;否则 返回 1

32 charset(binary 'a') collation(binary 'a' ) 返回 binary 类型

mysql-笔记-控制语句/string方法的更多相关文章

  1. MySQL事务控制语句(学习笔记)

    MySQL事务控制语句(学习笔记) MySQL事务控制语句         在mysql命令行的默认下,事务都是自动提交的,sql语句提交后马上会执行commit操作.因此开启一个事务必须使用begi ...

  2. JavaScript学习笔记-用于模式匹配的String方法

    用于模式匹配的String方法:   String支持4种使用正则表达式的方法:           seach()用于检索,参数是一个正则表达式,返回第一个与之匹配的子串的位置,找不到则返回-1,如 ...

  3. MYSQL进阶学习笔记三:MySQL流程控制语句!(视频序号:进阶_7-10)

    知识点四:MySQL流程控制语句(7-10) 选择语句: (IF ELSE ELSE IF CASE 分支)IFNULL函数 IF语法: 语法规则: IF search_condition THEN ...

  4. 最全mysql笔记整理

    mysql笔记整理 作者:python技术人 博客:https://www.cnblogs.com/lpdeboke Windows服务 -- 启动MySQL net start mysql -- 创 ...

  5. MySql数据库乱码解决方法

    MySql数据库乱码解决方法 解决乱码问题一个原则:存取系统使用一致的编码规则. 多使用mysql的原生命令行,这样才能做更多的事情. ​ 第一步: 确认应用系统需要使用的编码 java的默认编码是跟 ...

  6. MySQL笔记汇总

    [目录] MySQL笔记汇总 一.mysql简介 数据简介 结构化查询语言 二.mysql命令行操作 三.数据库(表)更改 表相关 字段相关 索引相关 表引擎操作 四.数据库类型 数字型 字符串型 日 ...

  7. 注册mySQL到JDBC驱动程序方法浅谈

    一.注册方法(4种) 1)服务提供者框架: 符合JDBC 4.0规范的驱动程序包含了一个文件META-INF/services/java.sql.Driver,在这个文件中提供了JDBC驱动实现的类名 ...

  8. MySql笔记(一)

    目录 MySql笔记(一) 每天给自己一个希望,努力做好自己,不为明天烦恼,不为昨天叹息.当梦想还在,告诉自己:努力,就总能遇见更好的自己! MySql笔记(一) 1.创建数据库以及删除 1.创建数据 ...

  9. C# | VS2019连接MySQL的三种方法以及使用MySQL数据库教程

    本文将介绍3种添加MySQL引用的方法,以及连接MySQL和使用MySQL的教程 前篇:Visual Studio 2019连接MySQL数据库详细教程 \[QAQ \] 第一种方法 下载 Mysql ...

随机推荐

  1. java~modelMapper需要注意的几点

    对于modelMapper来说,主要实现的是对象与对象的赋值,在这微服务里的数据传输对象中用的比较多,DTO这个对象是从业务模型抽象出来的,满足某一种业务,它与数据持久化模型没有关系,而如果我们把数据 ...

  2. 手撸GitLab CI(阉割版)

    上一集我们说到如何从零开始搭建一个Vue-cli 3.0的项目,而这一集我们将说到如何手写一份阉割版的CI脚本. 首先说一下GitLab部署到服务器的操作,一般有两种,一种是规范化分离的,包含runn ...

  3. confd+etcd实现高可用自动发现

    Confd是什么 Confd是一个轻量级的配置管理工具. 通过查询后端存储,结合配置模板引擎,保持本地配置最新,同时具备定期探测机制,配置变更自动reload. 对应的后端存储可以是etcd,redi ...

  4. .NET(C#、VB)移动开发——Smobiler平台控件介绍:TextTabBar控件

    TextTabBar控件 一.          样式一 我们要实现上图中的效果,需要如下的操作: 从工具栏上的“Smobiler Components”拖动一个TextTabBar控件到窗体界面上 ...

  5. WPF 添加 Resources Dictionary 资源 一般类库项目中无法添加资源文件(ResourceDictionary)

    在文件夹或者项目右键-> Add(添加),会弹出可以快捷添加的资源,但是你会发现没有 ResourceDictionary资源可以选择. 解决此问题方法: 第一步:工程->右键->U ...

  6. 关于写作那些事之利用 js 统计各大博客阅读量

    在日常文章数据统计的过程中,纯手动方式已经难以应付,于是乎,逐步开始了程序介入方式进行统计. 在上一节中,探索利用 csv 文件格式进行文章数据统计,本来以为能够应付一阵子,没想到仅仅一天我就放弃了. ...

  7. 用markdown写博客

    目录 用markdown写博客 前言 标题 段落 引用区块 代码块 列表 分隔线 链接 强调.加粗.下划线.删除线 图片 智能链接 表格 转义序列 用markdown写博客 前言 博客园支持用mark ...

  8. 结对编程项目总结 by:陈宏伟&刘益

    结对编程项目在欢快的国庆假期中也顺利结束了.从最初拿到结对编程项目的思考,再到一步一步实现,中间经历了一个漫长的过程.在我和队友的多次协商下,最终我们还是选择使用基于python来实现这一次结对编程项 ...

  9. django 问题综合

    orm部分 本篇文章我会持续更新,把开发中遇到的一切orm相关的问题都放在这里 mysql索引报错 使用django 的orm,数据库用的mysql,在使用makemigrations和migrate ...

  10. eclipse 导入gradle引入多模块项目,引入eclipse后变成了好几个工程

    1.eclipse  导入gradle 项目 ,选择项目文件夹. 2.导入完成后,文档结构变成 ,多个子项目并列了,而且互不依赖,没有层级结构了. 3.点击项目目录,右上角这个小箭头,选择projec ...