金沙棋牌app手机下载

当前位置:金沙棋牌 > 金沙棋牌app手机下载 > MySQL函数大全及用法示例,字符串截取相关函数小

MySQL函数大全及用法示例,字符串截取相关函数小

来源:http://www.logblo.com 作者:金沙棋牌 时间:2019-11-22 11:10

以下列出mysql函数的应用,并不完全,涉及到微微写多少。

文中给大家介绍MySQL 字符串截取相关函数,具体内容如下所示:

1、字符串函数

函数简要介绍:

 

在专门的学问中,只怕必要将或多或少字段按某些分割符组成二个字符串作为字段值存取到数据库表中,举个例子有个别义务对应三个结果,分别存款和储蓄在区别的多少表中,这个时候可以将那三个区别表的主键依照约定的种种举办重新组合(主键a:主键b:主键c卡塔 尔(阿拉伯语:قطر‎。当需求各自去查职分对应品种的实际情况新闻时,能够截取特定岗位的字符串(主键b)join 表b举办操作。赶巧近些日子也遇上那块操作,刻意将 MySQL 字符串截取的有关函数做叁个梳理,以便未来追思。

ascii(str)

SUBSTRING(str,pos) , SUBSTRING(str FROM pos) SUBSTRING(str,pos,len) , SUBSTRING(str FROM pos FOR len)

length(str):回去字符串(str)的字符长度。叁当中华夏族民共和国字算八个字符,八个数字或字母算二个字符。

一、left(str, len)

回来字符串str的首先个字符的ascii值(str是一贫如洗时重回0)

不蕴涵len 参数的格式从字符串str重返叁个子字符串,起头于地点 pos。带有len参数的格式从字符串str重临四个尺寸同len字符相近的子字符串,最先于地点 pos。 使用 FROM的格式为正式 SQL 语法。也会有可能对pos使用二个负值。假使那样,则子字符串的岗位发轫于字符串结尾的pos 字符,并非字符串的启幕地点。在偏下格式的函数中得以对pos 使用二个负值。

select length('测试');        -- 6
select length('123abc');    -- 6

回来字符串 str 自左数的 len 个字符。假设放肆气风发参数为 NULL,则赶回 NULL。

mysql> select ascii('2');

 

char_length(str):回到字符串(str)的字符长度。叁个汉字、数字或字母都算一个字符。

mysql> select left('shinejaie', 5);
+---------------------------------------------------------+
| left('shinejaie', 5)                  |
+---------------------------------------------------------+
| shine                          |
+---------------------------------------------------------+
1 row in set (0.00 sec)

-> 50

 

select char_length('测试');        -- 2
select char_length('123abc');    -- 6

二、right(str, len)

mysql> select ascii(2);

SUBSTRING_INDEX(str,delim,count) 按首要性字截取字符串

重返从字符串str分隔符 delim 在计数发生前的子字符串。假诺计数是正的,则赶回一切到最后定界符(从左侧算起)的左侧。假若count是负数,则赶回一切最后定界符(从左侧算起)的侧面。SUBST普拉多ING_INDEX() 搜寻在delim时进展区分抑扬顿挫写的相称

select (hostname,'wb',-1) from instances;  查找instances表中hostname的字段,过滤从第三个wb子串未来的字符串

说明:substring_index(被截取字段,关键字,关键字出现的次数卡塔 尔(阿拉伯语:قطر‎ 
例:select substring_index("blog.jb51.net","。",2) as abstract from my_content_t 
结果:blog.jb51 
(注:假设主要字现身的次数是负数 如-2 则是从后尾数,到字符串结束卡塔尔国 

 

left(str, length卡塔尔国 从左伊始截取字符串 
声明:left(被截取字段,截取长度卡塔 尔(英语:State of Qatar) 
例:select left(content,200) as abstract from my_content_t 

 

right(str, length卡塔 尔(阿拉伯语:قطر‎ 从右最早截取字符串 

证实:right(被截取字段,截取长度卡塔 尔(阿拉伯语:قطر‎ 
例:select right(content,200) as abstract from my_content_t 

substring(str, pos, length卡塔 尔(阿拉伯语:قطر‎ 截取字符串  也可以 substring(str, pos) 

表达:substring(被截取字段,从第三个人起初截取卡塔尔国 
substring(被截取字段,从第四个人开始截取,截取长度卡塔 尔(英语:State of Qatar) 
例:select substring(content,5) as abstract from my_content_t 
select substring(content,5,200) as abstract from my_content_t 
(注:假设位数是负数 如-5 则是从后尾数位数,到字符串结束或截取的尺寸卡塔尔 

 

instr(str,substr):回来钦命字符串(substr)在字符串(str)中的第一回面世的地点。纵然未找到则重返0。

归来 str 左边末 len 位的字符。假使部分参数是 NULL 值,则赶回 NULL。

-> 50

select instr('football','f');    -- 1
select instr('football','o');    -- 2
select instr('football','ba');    -- 5
mysql> select right('shinejaie', 4);
+---------------------------------------------------------+
| right('shinejaie', 4)                  |
+---------------------------------------------------------+
| jaie                          |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> select ascii('dete');

locate(substr,str):回去钦点字符串(substr)在字符串(str)中的首回现身之处。假诺未找到则重临0。

三、substring_index(str, delim, count)

-> 100

select locate('ba','football');        -- 5
select locate('o','football');        -- 2

回来 str 中第 count 次现身的相间符 delim 以前的子字符串。借使 count 为正数,将最终二个相隔符左侧(因为是从左数分隔符卡塔 尔(英语:State of Qatar)的富有内容作为子字符串再次回到;如若count 为负值,重返最终一个相隔符右侧(因为是从右数分隔符卡塔 尔(英语:State of Qatar)的装有内容作为子字符串重临。在搜寻分隔符时,函数对大小写是灵动的。如若在字符串 str 中找不到 delim 参数钦定的值,就重临整个字符串。

ord(str)

locate(substr,str,pos):回到钦点字符串(substr)在字符串(str)中的第(pos)位之后第二次现身的岗位。假如未找到则再次来到0。

mysql> select substring_index('home.cnblogs.com', '.', 2);
+---------------------------------------------------------+
| substring_index('home.cnblogs.com', '.', 2)       |
+---------------------------------------------------------+
| home.cnblogs                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select substring_index('home.cnblogs.com', '/', 2);
+---------------------------------------------------------+
| substring_index('home.cnblogs.com', '/', 2)       |
+---------------------------------------------------------+
| home.cnblogs.com                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

若是字符串str句首是单字节重返与ascii()函数再次回到的相同值。

select locate('o','football',3);    -- 3
select locate('o','football',4);    -- 0

四、substring() 与 substr() ---> substring(str, pos)、substring(str from pos)、substring(str, pos, len)、substring(str from pos for len)

若果是一个多字节字符,以格式重临((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]

concat(str1,str2,...):再次来到全体参数拼接起来发生的字符串。如若有任何一个参数位null,则赶回null。

在上述4种函数变种情势中,未有 len 参数的函数格局会再次来到自 str 中位置 pos 处之后的子字符串;有 len 参数的函数情势会重临自 str 中地点 pos 处之后,长度为 len 的子字符串。使用 FROM 的函数格局则是应用的正规化的 SQL 语法。pos 参数也可能取负值,在此种情况下,取字符串的艺术是从字符串 str 的尾声向前(而非在此之前将来卡塔尔国,从这种逆向顺序的 pos 处最早取字符串。其它,负值的 pos 参数可用于此外方式的 substring() 函数中。

mysql> select ord('2');

select concat('w','h','at');        -- what
select concat('w','h','at',null);    -- null
mysql> select substring('shinejaie', 6);
+---------------------------------------------------------+
| substring('shinejaie',6)                |
+---------------------------------------------------------+
| jaie                          |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select substr('shinejaie' from 6);
+---------------------------------------------------------+
| substr('shinejaie' from 6)               |
+---------------------------------------------------------+
| jaie                          |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select substring('shinejaie', -9, 5);
+---------------------------------------------------------+
| substring('shinejaie', -9, 5)              |
+---------------------------------------------------------+
| shine                          |
+---------------------------------------------------------+
1 row in set (0.00 sec)

-> 50

concat_ws(separator,str1,str2,...):回到全数参数拼接起来发生的字符串,第二个参数作为前边参数拼接的分隔符。假如分隔符为null,则赶回null,除分隔符外的其余参数为null,则忽视。

五、trim([{both | leading | trailing} [remstr] form] str)

conv(n,from_base,to_base)

select concat_ws(',','first','second','third');    -- first,second,third
select concat_ws(';','11','22','33',null);        -- 11;22;33
select concat_ws(null,'11','22','33',null);        -- null

将字符串 str去除 remstr 所钦定的前缀或后缀,再次回到结果字符串。若无一些名标志符both、leading,或trailing,则私下认可使用 both,将在前后缀都删除。remstr 其实是个可选参数,若无一点名它,则删除的是空格。

对数字n进制调换,并转移为字串重回(任何参数为null时回来null,进制范围为2-36进制,当to_base是负数时n作为有标识数否则作无符号数,conv以六11个人点精度专门的工作)

left(str,length):从字符串(str)左起第一个字符初叶,重返钦定长度(length)的子字符串。

mysql> select trim(' shinejaie  ');
+---------------------------------------------------------+
| trim(' shinejaie  ')                 |
+---------------------------------------------------------+
| shinejaie                        |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select trim(leading 'cn_' from 'cn_shinejaiecn_');
+---------------------------------------------------------+
| trim(leading 'cn_' from 'cn_shinejaiecn_')       |
+---------------------------------------------------------+
| shinejaiecn_                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select trim(both 'cn_' from 'cn_shinejaiecn_');
+---------------------------------------------------------+
| trim(both 'cn_' from 'cn_shinejaiecn_')         |
+---------------------------------------------------------+
| shinejaie                        |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select trim(trailing 'cn_' from 'cn_shinejaiecn_');
+---------------------------------------------------------+
| trim(trailing 'cn_' from 'cn_shinejaiecn_')       |
+---------------------------------------------------------+
| cn_shinejaie                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> select conv("a",16,2);

select left('mysql',2);        -- my

总结

-> '1010'

right(str,length):从字符串(str)右起第四个字符开首,重返钦赐长度(length)的子字符串。

如上所述是作者给我们介绍的MySQL 字符串截取相关函数小结,希望对大家全部利于,假设大家有别的疑问请给本身留言,我会及时还原大家的。在这里也非常感激大家对台本之家网址的支撑!

mysql> select conv("6e",18,8);

select right('mysql',3);    -- sql

你或者感兴趣的篇章:

  • MySQL 截取字符串函数的sql语句
  • MySQL截取和拆分字符串函数用法示例
  • mysql截取的字符串函数substring_index的用法
  • Mysql字符串截取函数SUBSTTiggoING的用法表达
  • mysql 截取钦赐的多少个字符串之间的剧情

-> '172'

substring(str,pos):归来字符串(str)从第(pos)个字符带头过后的兼具字符组成的子字符串。pos为正数,从左起;pos为负数,从右起。

mysql> select conv(-17,10,-18);

select substring('everyone',3);        -- eryone
select substring('everyone',-3);    -- one

-> '-h'

substring(str,pos,length):归来字符串(str)从第(pos)个字符开端,之后钦点长度(length)的子字符串。pos为正数,从左起;pos为负数,从右起。

mysql> select conv(10+"10"+'10'+0xa,10,10);

select substring('everyone',1,5);    -- every
select substring('everyone',-3,3);    -- one

-> '40'

substring_index(str,delim,count):回来从字符串(str)第一个字符最早,到字符串中第(count)次现身的分隔符(delim)之间的子字符串。count为正数,从左起;count为负数,从右起。
假诺在字符串(str)中未找到分隔符(delim)的岗位,也许未找到内定次数(count)现身的分隔符的地点时,则赶回整个字符串。分隔符(delim)不必然为标记,也得感觉别的自定义字符。

bin(n)

select substring_index('11;22;33;',';',2);    -- 11;22
select substring_index('11;22;33;',',',2);    -- 11;22;33;
select substring_index('11;22;33;',';',-2);    -- 33;

把n转为二进制值并以字串重回(n是bigint数字,等价于conv(n,10,2))

convert(value,type):品类或格式变换。可转换的种类是有限定的,能够是以下项目中之风流罗曼蒂克:binary、char(n)、date、time、datetime、decimal、signed、unsigned。

mysql> select bin(12);

-- 数字转换为字符串
select convert(33,char);    -- 33(字符串类型)
-- 字符串转换为数字
select convert('333',signed);    -- 333(数字值类型)

-- 把字符串编码格式转换为Unicode编码格式
select convert('一' using ucs2);
-- 把字符串编码格式转换为UTF8编码格式
select convert('abc' using utf8);
-- 把字符串编码格式转换为GBK编码格式
select convert('一' using gbk);
-- 把字符串编码格式转换为GB2312编码格式
select convert('一' using gb2312);

-> '1100'

cast(value as type):类型转变。可退换的品类是有约束的,可以是以下系列中之黄金时代:binary、char(n)、date、time、datetime、decimal、signed、unsigned。

oct(n)

-- 数字转换为字符串
select cast(333 as char);
-- 字符串转换为数字
select cast('3333' as signed);

把n转为八进制值并以字串重临(n是bigint数字,等价于conv(n,10,8))

hex(str):把钦点的字符串(str)转变为16进制值。

mysql> select oct(12);

-- 把字符串转换为16进制值
select hex(convert('一' using ucs2));    -- 4E00

-> '14'

unhex(str):把钦赐的16进制字符串(str)转变为字符串。

hex(n)

-- 把16进制值转换为字符串
select convert(unhex('4E00') using ucs2);    -- 一

把n转为十二进制并以字串再次回到(n是bigint数字,等价于conv(n,10,16))

ord(str):把钦点的字符串(str)转换为ASCII值。

mysql> select hex(255);

-- 把字符串转换为ASCII值
select ord(convert('A' using ucs2));    -- 65
select ord(convert('一' using ucs2));    -- 19968

-> 'ff'

ascii(str):把钦命的字符串(str)转变为ASCII值。

char(n,...)

-- 把字符串转换为ASCII值
select ascii(convert('A' using utf8));    -- 65

回来由参数n,...对应的ascii代码字符组成的二个字串(参数是n,...是数字连串,null值被跳过)

 

mysql> select char(77,121,83,81,'76');

-> 'mysql'

mysql> select char(77,77.3,'77.3');

-> 'mmm'

concat(str1,str2,...)

把参数连成贰个长字符串并赶回(任何参数是null时回来null)

mysql> select concat('my', 's', 'ql');

-> 'mysql'

mysql> select concat('my', null, 'ql');

-> null

mysql> select concat(14.3);

-> '14.3'

length(str)

octet_length(str)

char_length(str)

character_length(str)

回来字符串str的尺寸(对于多字节字符char_length仅总括叁回)

mysql> select length('text');

-> 4

mysql> select octet_length('text');

-> 4

locate(substr,str)

position(substr in str)

回来字符串substr在字符串str第贰遍面世的地点(str不富含substr时重临0)

mysql> select locate('bar', 'foobarbar');

-> 4

mysql> select locate('xbar', 'foobar');

-> 0

locate(substr,str,pos)

再次来到字符串substr在字符串str的第pos个职位起率先次面世的地点(str不包涵substr时重返0)

mysql> select locate('bar', 'foobarbar',5);

-> 7

instr(str,substr)

回去字符串substr在字符串str第贰回现身的地点(str不包罗substr时再次来到0)

mysql> select instr('foobarbar', 'bar');

-> 4

mysql> select instr('xbar', 'foobar');

-> 0

lpad(str,len,padstr)

用字符串padstr抵补str左端直到字串长度为len并赶回

mysql> select lpad('hi',4,'??');

-> '??hi'

rpad(str,len,padstr)

用字符串padstr抵补str右端直到字串长度为len并赶回

mysql> select rpad('hi',5,'?');

-> 'hi???'

left(str,len)

归来字符串str的左端len个字符

mysql> select left('foobarbar', 5);

-> 'fooba'

right(str,len)

归来字符串str的右端len个字符

mysql> select right('foobarbar', 4);

-> 'rbar'

substring(str,pos,len)

substring(str from pos for len)

mid(str,pos,len)

归来字符串str的职位pos起len个字符mysql> select substring('quadratically',5,6);

-> 'ratica'

substring(str,pos)

substring(str from pos)

回去字符串str的岗位pos起的一个子串

mysql> select substring('quadratically',5);

-> 'ratically'

mysql> select substring('foobarbar' from 4);

-> 'barbar'

substring_index(str,delim,count)

回去从字符串str的第count个冒出的相间符delim之后的子串

(count为正数时回来左端,不然重回右端子串)

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

-> 'www.mysql'

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

-> 'mysql.com'

ltrim(str)

回到删除了左空格的字符串str

mysql> select ltrim('  barbar');

-> 'barbar'

rtrim(str)

回去删除了右空格的字符串str

mysql> select rtrim('barbar   ');

-> 'barbar'

trim([[both | leading | trailing] [remstr] from] str)

回去前缀或后缀remstr被删除了的字符串str(地点参数暗中认可both,remstr默许值为空格)

mysql> select trim('  bar   ');

-> 'bar'

mysql> select trim(leading 'x' from 'xxxbarxxx');

-> 'barxxx'

mysql> select trim(both 'x' from 'xxxbarxxx');

-> 'bar'

mysql> select trim(trailing 'xyz' from 'barxxyz');

-> 'barx'

soundex(str)

归来str的一个同音字符串(听上去“大致相似”字符串有相通的

同音字符串,非数字字母字符被忽略,在a-z外的假名被充当元音)

mysql> select soundex('hello');

-> 'h400'

mysql> select soundex('quadratically');

-> 'q36324'

space(n)

再次回到由n个空格字符组成的三个字符串

mysql> select space(6);

-> '      '

replace(str,from_str,to_str)

用字符串to_str替换字符串str中的子串from_str并返回

mysql> select replace('www.mysql.com', 'w', 'ww');

-> 'wwwwww.mysql.com'

repeat(str,count)

回去由count个字符串str连成的三个字符串(任何参数为null时

回到null,count<=0时回来三个空字符串)

mysql> select repeat('mysql', 3);

-> 'mysqlmysqlmysql'

reverse(str)

颠倒字符串str的字符顺序并赶回

mysql> select reverse('abc');

-> 'cba'

insert(str,pos,len,newstr)

把字符串str由地方pos起len个字符长的子串替换为字符串

newstr并返回

mysql> select insert('quadratic', 3, 4, 'what');

-> 'quwhattic'

elt(n,str1,str2,str3,...)

回到第n个字符串(n小于1或高于参数个数重返null)

mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');

-> 'ej'

mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');

-> 'foo'

field(str,str1,str2,str3,...)

归来str等于其后的第n个字符串的序号(就算str没找到再次来到0)

mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',

'foo');

-> 2

mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',

'foo');

-> 0

find_in_set(str,strlist)

回来str在字符串集strlist中的序号(任何参数是null则赶回

null,借使str没找到再次回到0,参数1带有","时专门的学业特别)

mysql> select find_in_set('b','a,b,c,d');

-> 2

make_set(bits,str1,str2,...)

把参数1的数字转为二进制,假诺某些地点的二进制位等于1,对应

岗位的字串选入字串集并赶回(null串不加多到结果中)

mysql> select make_set(1,'a','b','c');

-> 'a'

mysql> select make_set(1 | 4,'hello','nice','world');

-> 'hello,world'

mysql> select make_set(0,'a','b','c');

-> ''

export_set(bits,on,off,[separator,[number_of_bits]])

按bits排列字符串集,唯有当位等于1时插入字串on,不然插入

off(separator默认值",",number_of_bits参数使用时间长度度相差补0

而过长截断)

mysql> select export_set(5,'y','n',',',4)

-> y,n,y,n

lcase(str)

lower(str)

回去小写的字符串str

mysql> select lcase('quadratically');

-> 'quadratically'

ucase(str)

upper(str)

回来大写的字符串str

mysql> select ucase('quadratically');

-> 'quadratically'

load_file(file_name)

读入文件同偶尔候作为二个字符串重临文件内容(文件不能够找到,路线

不完全,未有权力,长度超过max_allowed_packet会返回null)

mysql> update table_name set blob_column=load_file

("/tmp/picture") where id=1;

本文由金沙棋牌发布于金沙棋牌app手机下载,转载请注明出处:MySQL函数大全及用法示例,字符串截取相关函数小

关键词:

上一篇:没有了

下一篇:没有了