使用MYSQL常用函数

来源:互联网 发布:伪娘被肛哭 知乎 编辑:程序博客网 时间:2024/06/05 08:26

1.使用字符串函数

合并字符串函数CONCAT()和CONCAT_WS()


SELECT CONCAT('My','S','QL') 合并后字符串;
SELECT CONCAT(CURDATE(),12.34) 合并后字符串;


CONCAT_WS()函数全程为CONCAT With Separator,是CONCAT()函数的特殊形式。函数CONCAT_WS()的定义如下:
CONCAT_WS(SEP,S1,S2,…SN)
上述函数与CONCAT()相比,多了一个表示分割符的SEP参数,即不仅将传入的其他参数连接起来,而且还会通过分割符将各个字符串分割开。分隔符可以是一个字符串,也可以是其他参数。如果分隔符为NULL,则返回结果为NULL。函数会忽略任何分隔符参数后的NULL值。
SELECT CONCAT_WS('-','021',88888888) 合并后字符串


(2)执行SQL函数CONCAT_WS(),当分割符参数的值为NULL时,具体SQL语句如下:
SELECT CONCAT_WS(NULL,'021',88888888) 合并后字符串;
执行结果显示,当所传入的第一个参数值为NULL,返回的结果值将为NULL,因此返回结果为NULL。


(3)执行SQL函数CONCAT_WS(),当分割符参数后值存在NULL时,具体SQL语句如下:
SELECT CONCAT_WS('-','021',NULL,88888888) 合并后字符串;
执行结果显示,当所传入的参数(除第一个参数外)值中有NULL,返回的结果值将忽略NULL,因此返回结果为021-88888888。


比较字符串大小函数STRCMP() STRCMP()


比较所传入的字符串对象。查看帮助文档,函数STRCMP()的定义如下:
STRCMP(str1,str2)
上述函数用来比较字符串参数str1和str2,如果参数str1大于str2,则返回结果1;如果参数str1小于str2,则返回结果-1;如果参数str1等于str2,则返回结果0。




SELECT STRCMP('abc','abd'),
STRCMP('abc','abc'),
STRCMP('abc','abb');


获取字符串长度函数LENGTH()和字符数函数CHAR_LENGTH()


在MySQL软件中可以通过函数LENGTH()和CHAR_LENGTH()获取字符串的长度。查看帮助文档,函数LENGTH()的定义如下:
LENGTH(str)
上述函数会获取传入的参数str的长度。
函数CHAR_LENGTH()的定义如下:
CHAR_LENGTH(str)



实现字母大小写转换函数UPPER()和字符数函数LOWER()
在MySQL软件中可以通过函数UPPER()和UCASE()实现将字符串的所有字母转变成大写字母。查看帮助文档,函数UPPER()的定义如下:
UPPER(S)
上述函数会将所传入的字符串对象S中所有字母全部转换成大写字母。
关于实现字母大写转换函数除了UPPER()外,还可以通过函数UCASE()来实现,其具体定义如下:
UCASE(S)



查找字符串


1.返回字符串位置的函数FIND_IN_SET()   在MySQL软件中可以通过函数FIND_IN_SET()获取相匹配字符串的位置。SELECT FIND_IN_SET('MySQL','orcle,sql server,MySQL') 位置;
2.返回指定字符串位置的函数FIELD()
在MySQL软件中可以通过函数FIELD()获取相匹配字符串的位置。查看帮助文档,函数FIELD()的定义如下:
FIELD(str,str1,str2…)  上述函数将会返回第一个与字符串str匹配的字符串的位置。
SELECT FIELD('MySQL','orcle','sql server','MySQL') 位置;
3.返回子字符串相匹配的开始位置
在MySQL软件中可以通过三个函数获取子字符串相匹配的开始位置,它们分别为函数LOCATE()、POSITION()和INSTR()。查看帮助文档,函数LOCATE()的定义如下:
LOCATE(str1,str) 上述函数将会返回参数str中字符串str1的开始位置。
其他两个函数定义如下:POSITION(str1 IN str) INSTR(str,str1)
SELECT LOCATE('SQL','MySQL') 位置,
POSITION('SQL' IN 'MySQL') 位置,
INSTR('MySQL','SQL') 位置;
4.返回指定位置的字符串的函数ELT()
在MySQL软件中可以通过函数ELT()获取指定位置的字符串。查看帮助文档,函数ELT()的定义如下:ELT(n,str1,str2…)上述函数将会返回第n个字符串。
SELECT ELT(1,'MySQL','orcle','sql server') 第1个位置的字符串;
5.选择字符串的函数MAKE_SET()
在MySQL软件中可以通过函数MAKE_SET()获取字符串,查看帮助文档,函数MAKE_SET()的定义如下:MAKE_SET(num,str1,str2…strn)
上述函数首先会将数值num转换成二进制数,然后按照二进制数从参数str1,str2,……,strn中选取相应的字符串。在通过二进制数来选择字符串时,会从右到左的顺序读取该值,如果值为1值选择该字符串,否则将不选择该字符串
SELECT BIN(5) 二进制数,MAKE_SET(5,'MySQL','Oracle','SQL Server','PostgreSQL') 选取后的字符串;
BIN(7) 二进制数,MAKE_SET(7,'MySQL','Oracle','SQL Server','PostgreSQL') 选取后的字符串;



从现有字符串中截取子字符串


在MySQL软件中提供了丰富函数去实现截取子字符串功能,分别为函数LEFT()、函数RIGHT()、函数SUBSTRING()和函数MID()。
1.从左边或右边截取子字符串
LEFT(str,num)
RIGHT(str,num)
2.截取指定位置和长度子字符串
SUBSTRING(str,num,len)
MID(str,num,len)


去除字符串的首尾空格


在MySQL软件中提供了丰富函数去实现去除字符串空格功能,分别为函数LTRIM()、函数RTRIM()和函数TRIM()。
1.去除字符串开始处空格
LTRIM(str) 
2.去除字符串结束处空格
RTRIM(str)
3.去除字符串首尾空格
TRIM(str)


0 0
原创粉丝点击