MySQL常用字符串函数

发布时间 2023-07-05 14:35:45作者: 夏尔_717

一、常用函数

1.1 ASCII(str)

返回值为字符串str的最左字符的数值,即取得最左字符的ascii码。假如str为空字符串,则返回值为 0 。假如str 为null,则返回值为 null。

mysql> select ascii('a');
+--------------+
| ascii('a') |
+--------------+
| 97 |
+--------------+
1 row in set (0.00 sec)

1.2 CHAR()

将ASCII码转换为字符。如果没有输入0~255之间的ASCII码值,CHAR()返回NULL。

1.3 LOWER()和UPPER()

LOWER()将字符串全部转为小写;UPPER()将字符串全部转为大写。

1.4 STR()

把数值型数据转换为字符型数据。

STR(<float_expression>[length]]])length指定返回的字符串的长度,decimal指定返回的小数位数。如果没有指定长度,缺省的length值为10,decimal缺省值为0。当length或者decimal为负值时,返回NULL;当length小于小数点左边(包括符号位)的位数时,返回length个*;先服从length,再取decimal;当返回的字符串位数小于length,左边补足空格。

二、去空格函数

2.1 LTRIM()

把字符串头部的空格去掉。

2.2 RTRIM()

把字符串尾部的空格去掉。

三、取子串函数

3.1 left()

LEFT(<character_expression>,<integer_expression>)返回character_expression左起integer_expression个字符。

3.2 RIGHT()

RIGHT(<character_expression>,<integer_expression>)返回character_expression右起integer_expression个字符。

3.3 SUBSTRING()

SUBSTRING(,<starting_position="">,length)返回从字符串左边第starting_position个字符起length个字符的部分。

3.4 SUBSTRING_INDEX()

select SUBSTRING_INDEX(SUBSTRING_INDEX('1086290887786995712_1086217687719845888_1086217427995959296_QU' ,'_',-3) ,'_',1);

四、字符串比较函数

4.1 CHARINDEX()

返回字符串中某个指定的子串出现的开始位置。

CHARINDEX(<'substring_expression'>,)其中substring_expression是所要查找的字符表达式,expression可为字符串也可为列名表达式。如果没有发现子串,则返回0值。此函数不能用于TEXT和IMAGE数据类型。

4.2 PATINDEX()

返回字符串中某个指定的子串出现的开始位置。

PATINDEX(<'%substring_expression%'>,<column_name="">)其中子串表达式前后必须有百分号“%”否则返回值为0。与CHARINDEX函数不同的是,PATINDEX函数的子串中可以使用通配符,且此函数可用于CHAR、VARCHAR和TEXT数据类型。

五、字符串操作函数

5.1 QUOTENAME()

返回被特定字符括起来的字符串。QUOTENAME(<'character_expression'>[,quote_character])其中quote_character标明括字符串所用的字符,缺省值为“[]”。

5.2 REPLICATE()

返回一个重复character_expression指定次数的字符串。

REPLICATE(character_expression integer_expression)如果integer_expression值为负值,则返回NULL。

5.3 REVERSE()

将指定的字符串的字符排列顺序颠倒。

REVERSE(<character_expression>)其中character_expression可以是字符串、常数或一个列的值。

5.4 REPLACE()

返回被替换了指定子串的字符串。

REPLACE(<string_expression1>,<string_expression2>,<string_expression3>)用string_expression3替换在string_expression1中的子串string_expression2。

5.5 SPACE()

返回一个有指定长度的空白字符串。

SPACE(<integer_expression>)如果integer_expression值为负值,则返回NULL。

5.6 STUFF()

用另一子串替换字符串指定位置、长度的子串。

STUFF(<character_expression1>,<start_position="">,,<character_expression2>)

如果起始位置为负或长度值为负,或者起始位置大于character_expression1的长度,则返回NULL值。

如果length长度大于character_expression1中start_position以右的长度,则character_expression1只保留首字符。

参考文章