2分钟搞懂Mysql常用函数

1、SUBSTRING 截取
函数从特定位置开始的字符串返回一个给定长度的子字符串。

SUBSTRING(string,position);

有两个参数:
string参数是要提取子字符串的字符串。
position参数是一个整数,用于指定子串的起始字符,position可以是正或负整数。
例:

select substring(content,5) as abstract from my_content_t

如果要指定要从字符串中提取的子字符串的长度,可以使用以下形式的SUBSTRING函数:

SUBSTRING(string,position,length);

有三个参数:
string参数是要提取子字符串的字符串。
position参数是一个整数,用于指定子串的起始字符,position可以是正或负整数。
length参数是一个正整数,用于指定子字符串的字符数
例:

select substring(content,5,200) as abstract from my_content_t

2、left 左截取
从左开始截取字符串
left(str, length)

有两个参数:
string参数是要提取子字符串的字符串。
length参数是一个整数,用于指定子字符串的字符数。
例:

select left(content,200) as abstract from my_content_t 

3、right 右截取
从右开始截取字符串
right(str, length)

有两个参数:
string参数是要提取子字符串的字符串。
length参数是一个整数,用于指定子字符串的字符数。
例:

select right(content,200) as abstract from my_content_t 

4、substring_index 截取
根据关键字截取字符串到指定的出现次数处
substring_index(str,delim,count)

有三个参数:
string参数是被截取字段。
delim参数是关键字。
count参数是关键字出现的次数。
例:

select substring_index("blog.jb51.net",".",2) as abstract from my_content_t

注:如果关键字出现的次数是负数 如-2 则是从后倒数,到字符串结束

5、JSON_EXTRACT
返回JSON文档中的数据,该文档从path 参数匹配的文档部分中选择。返回NULL如果任何参数 NULL或没有路径找到文档中的一个值。如果json_doc参数不是有效的JSON文档或任何path参数不是有效的路径表达式,则会发生错误 。
返回值由path参数匹配的所有值组成 。如果这些参数可能返回多个值,则匹配的值将按照与生成它们的路径对应的顺序自动包装为数组。否则,返回值是单个匹配的值。
JSON_EXTRACT(json_doc, path[, path] …)
有两个参数:
json_doc参数是json文档。
path参数是匹配的参数。
例:

SELECT JSON_EXTRACT('[10, 20, [30, 40]]', '$[1]');

用法解析:

参数含义
‘$.*’返回全部json
‘$.title’返回key=”title”的数据
‘$**.text’返回所有最底层key=”text”的数据
‘$.content[].item1[]’返回key=content的list的key=item1的list的所有内容

6、REPLACE 替换
字符串替换
REPLACE(str,from_str,to_str)

有三个参数:
str参数是要进行替换的字符串。
from_str参数是被替换的参数。
to_str参数是准备替换成的参数
例:

SELECT REPLACE('www.mysql.com', 'w', 'Ww');

7、LOCATE 出现位置
返回子串 substr 在字符串 str 中第一次出现的位置。如果子串 substr 在 str 中不存在,返回值为 0:
LOCATE(substr,str)

同于:
POSITION(substr IN str)

有两个参数:
substr参数是要查找在str中出现的子串。
str参数是被查找的字符串。
例:

SELECT LOCATE('bar', ‘foobarbar');

LOCATE(substr,str,pos)
返回子串 substr 在字符串 str 中的第 pos 位置后第一次出现的位置。如果 substr 不在 str 中返回 0 :
有三个参数:
substr参数是要查找在str中出现的子串。
str参数是被查找的字符串。
pos参数是开始计数的位置
例:

SELECT LOCATE('bar', ‘foobarbar',5); 

8、LENGTH(str) 和 CHAR_LENGTH(str)
length返回字符串str的长度,以字节为单位。 多字节字符计为多个字节。

SELECT length('aaa');           # 3
SELECT length('ɠɠɠ');           # 6
SELECT length('我我我');         # 9

char_length返回字符串str的长度,以字符为单位。 多字节字符算作单个字符。

SELECT char_length('aaa');      # 3
SELECT char_length('ɠɠɠ');      # 3
SELECT char_length('我我我');    # 3

9、having与where的异同
having与where类似,可筛选数据,where后的表达式怎么写,having后面就怎么写
where针对表中的列发挥作用,查询数据,而having针对查询结果中的列发挥作用,筛选数据
having后的判断字段必须是聚合函数返回的结果

where版:select goods_id,goods_name,market_price -shop_price as sheng goods where market_price -shop_price>200;
having版:select goods_id,goods_name,market_price -shop_price as sheng from goods having sheng >200;

10、TIME_TO_SEC将时间转变成秒
返回 time 参数,转换成秒。可以直接在mysql执行

SELECT TIME_TO_SEC('22:23:00'); 结果为 80580

UNIX_TIMESTAMP把时间转换成时间戳格式

SELECT STR_TO_DATE('1494362128'); 结果为 1494362128

11、CONCAT(str1,str2,…) 结果连接
CONCAT(str1,str2,…) :返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。

select CONCAT(product_id,skc) from product; 结果为:6476SKC455656

12、ELT(N,str1,str2,str3,…)返回指定位置参数
ELT(N,str1,str2,str3,…):返回第一个参数后面的第N个参数。

select ELT(2,65,6,7,7,878); 结果为:6

13、INSTR指定字符串出现位置
INSTR(str,substr):返回字符串 str 中子字符串substr的第一个出现位置。

select INSTR('str','r'); 结果为:3

14、INSERT(str,pos,len,newstr)字符串替换
INSERT(str,pos,len,newstr):字符串 str的pos到len长的位置被newstr替换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值