1:字符函数
concat()
说明:将字符串连接,可以是一个或多个字符串。若都是非二进制的字符,那么返回的结果也是非二进制的。若包含任何二进制字符,那么结果则是二进制的。若是数值型的,也将转换成非二进制的形式。若其中任意一个字符是NULL,则CONCAT()返回的结果为NULL.。
语法:concat(str1,str2......)
举例:
SELECT CONCAT(‘你‘,‘是‘,‘谁‘);结果为:你是谁
SELECT CONCAT(‘你‘,NULL,‘谁‘); 结果为:NULL
SELECT CONCAT(13.2);结果为:13.2
concat_ws()
说明:表示用分隔符将字符串连接,是一种特殊形式的连接函数。第一个参数表示分隔符,各字符串之间通过分隔符连接,分隔符可以是一个字符串,也可以是其他形式,如果分隔符为NULL,那么返回的结果也是NULL。
语法:CONCAT_WS(separator,str1,str2,…);
举例:
SELECT CONCAT_WS(‘-‘,‘1‘,‘2‘,‘3‘); 结果为:1-2-3
SELECT CONCAT_WS(NULL,‘1‘,‘2‘,‘3‘); 结果为:NULL
ELT()
说明:ELT函数是指返回一个字符串List的第N个元素,如果N=1,返回str1;如果N=2,返回str2. 如果N小于1或大于字符串元素的个数,则返回NULL。
语法:ELT(N,str1,str2,str3,…);
举例:
SELECT ELT(4,‘1‘,‘2‘,‘3‘); 结果为:NULL
SELECT ELT(1,‘你‘,‘是‘,‘谁‘); 结果为:你
FIELD()
说明:FIELD函数是指返回某字符串在字符串List的位置,如果字符串List未找到指定的字符串,则返回0. 若FIELD()中所有的参数都是字符串型,则将以字符串类型作为比较;如果所有的参数都是数字型,则将以数字类型作为比较;否则,以double类型进行比较。如果字符串为NULL,则返回的值为0,因为NULL和所有值比较都不相等。
语法:FIELT(N,str1,str2,str3,…);
举例:
SELECT FIELD(‘你‘,‘你‘,‘是‘,‘谁‘); 结果为:1
SELECT FIELD(‘好‘,‘你‘,‘是‘,‘谁‘); 结果为:0
SELECT FIELD(NULL,‘你‘,‘是‘,‘谁‘); 结果为:0
INSERT()
说明:从起始位置截取一定长度的字符串,用新字符串代替截取的字符串,返回结果。如果位置不在字符串的长度范围内,则返回原始字符串。如果长度不在字符串剩余长度范围内,则从起始位置将剩余的字符串替换。如果任意一个参数为NULL,则结果返回NULL。
语法:INSERT(str,pos,len,newstr);
举例:
SELECT INSERT(‘Quadratic‘,3,4,‘What‘); 结果为:QuWhattic
SELECT INSERT(‘Quadratic‘,-1,4,‘What‘); 结果为:Quadratic
SELECT INSERT(‘Quadratic‘,3,100,‘What‘); 结果为:QuWhat
SELECT INSERT(‘Quadratic‘,NULL,100,‘What‘); 结果为:NULL
INSTR()
说明:返回字符串中所要截取的字符串第一次出现的位置。此函数的功能和带有两个参数的LOCATE()函数相同,只是参数的顺序是相反的。
语法:INSTR(str,substr);
举例:
SELECT INSTR(‘foobarbar‘,bar‘); 结果为:4
SELECT INSTR(‘xbar‘,‘foobar‘); 结果为:0
LOCATE()
说明:带有两个参数的LOCATE()函数返回字符串中所要截取的字符串第一次出现的位置。三个参数的LOCATE()指的是从字符串的指定位置开始,得出所要截取的字符串第一次出现的位置
语法:LOCATE(substr,str),LOCATE(substr,str,pos)
举例;
SELECT LOCATE(‘bar‘,‘foobarbar‘); 结果为:4
SELECT LOCATE(‘xbar‘,‘foobar‘);;结果为:0
SELECT LOCATE(‘bar‘,‘foobarbar‘,5);结果为:7
SUBSTRING()
说明:和SUBSTR()同义。共有4种形式。没有len参数的形式,是指从指定的位置开始截取字符串,结果是截取后的字符串;有len参数的,是指从指定的位置开始截取len长度的字符串;带有FROM的形式,是标准的SQL形式,但其位置可能是一个负数,则截取字符串是从字符串最后位置开始截取,而不是起始位置。
语法:SUBSTRING(str,pos),SUBSTRING(str FROM pos),SUBSTRING(str,pos,len),SUBSTRING(str FROM pos FOR len)
举例:省略。。。
SUBSTRING_INDEX()
说明:返回一个字符串中,从某个标记出现的某个次数开始截取的结果。如果次数是一个正值,则返回这个字符左边的所有字符;如果这个值是一个负值,则返回这个字符右边的所有字符。
语法:SUBSTRING_INDEX(str,delim,count)
举例:
SELECT SUBSTRING_INDEX(‘www.mysql.com‘,‘.‘,2);结果为:www.mysql
SELECT SUBSTRING_INDEX(‘www.mysql.com‘,‘.‘,-2);结果为:mysql.com
原文地址:https://www.cnblogs.com/pigwood/p/9957348.html