---
title: "字符串函数 | OceanBase 文档中心"
description: "字符串函数 CONCAT 声明 CONCAT(str1, .., strN) 说明 把多个字符串连接成一个字符串。参数中包含 NULL 时，返回 NULL 。 示例 obclient&gt; SELECT CONCAT(&#x27;test&#x27;,&#x27;obclient&#x27;, &#x27;1.0&#x27;), CONCAT(&#x27;test&#x27;,&#x27;obclient&#x27;,…"
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 2.2.77 企业版 LTS

# 字符串函数

更新时间：2023-07-18 17:27:21

## CONCAT

**声明**

```javascript
CONCAT(str1, .., strN)

```

**说明**

把多个字符串连接成一个字符串。参数中包含 `NULL` 时，返回 `NULL`。

**示例**

```javascript
obclient> SELECT
     CONCAT('test','obclient', '1.0'),
     CONCAT('test','obclient', NULL)
     \G
*************************** 1. row ***************************
CONCAT('test','obclient', '1.0'): testobclient1.0
 CONCAT('test','obclient', NULL): NULL
1 row in set

```

## CONCAT_WS

**声明**

```javascript
CONCAT_WS(separator, str1, .., strN)

```

**说明**

把多个字符串连接成一个字符串，相邻字符串间使用 `separator` 分隔。参数中包含 `NULL` 时，将忽略 `NULL`。

**示例**

```javascript
obclient> SELECT
     CONCAT_WS('_', 'First', 'Second'),
     CONCAT_WS('_', 'First', NULL, 'Second')
     \G
*************************** 1. row ***************************
      CONCAT_WS('_', 'First', 'Second'): First_Second
CONCAT_WS('_', 'First', NULL, 'Second'): First_Second
1 row in set

```

## FORMAT

**声明**

```sql
FORMAT(X,D)

```

**说明**

把数字 `X` 格式化为"#,###,###.##"格式，四舍五入到 `D` 位小数，并以字符串形式返回结果（如果整数部分超过三位，会用","作为千分位分隔符）。如果 `D` 为 0，则结果没有小数点或小数部分。

**示例**

```sql
obclient> SELECT FORMAT(12332.123456, 4) from DUAL;
+-------------------------+
| format(12332.123456, 4) |
+-------------------------+
| 12,332.1235             |
+-------------------------+
1 row in set

obclient> SELECT FORMAT(12332.1, 4) from DUAL;
+--------------------+
| format(12332.1, 4) |
+--------------------+
| 12,332.1000        |
+--------------------+
1 row in set

obclient> SELECT FORMAT(12332.2, 0) from DUAL;
+--------------------+
| format(12332.2, 0) |
+--------------------+
| 12,332             |
+--------------------+
1 row in set

```

## FROM_BASE64

**声明**

```sql
FROM_BASE64(str)

```

**说明**

获取使用 base-64 编码规则编码的字符串，并将解码结果作为二进制字符串返回。

如果参数为 NULL 或不是有效的 base-64 字符串，则结果为 NULL。

有关 base-64 编码的详细信息，请参见 **TO_BASE64**。

**示例**

```sql
obclient> SELECT FROM_BASE64('MTIzNDU=');
+-------------------------+
| FROM_BASE64('MTIzNDU=') |
+-------------------------+
| 12345                   |
+-------------------------+
1 row in set

```

## SUBSTR

**声明**

```javascript
SUBSTR(str, pos)
SUBSTR(str, pos, len)
SUBSTR(str FROM pos)
SUBSTR(str FROM pos FOR len)

```

**说明**

返回 `str` 的子字符串，起始位置为 `pos`，长度为 `len`。参数中包含 `NULL` 时，返回 `NULL`。

- 不指定 `len` 时，返回的子字符串从 `pos` 位置开始到 `str` 结尾。
 - `pos` 值为负数时，从 `str` 尾部向头部倒序确定起始位置。
 - `len` 小于等于 0，或 `pos` 指定的起始位置非法时，返回空字符串。

**示例**

```javascript
obclient> SELECT
     SUBSTR('abcdefg', 3),
     SUBSTR('abcdefg', 3, 2),
     SUBSTR('abcdefg', -3),
     SUBSTR('abcdefg', 3, -2),
     SUBSTR('abcdefg' from -4 for 2)
     \G
*************************** 1. row ***************************
           SUBSTR('abcdefg', 3): cdefg
        SUBSTR('abcdefg', 3, 2): cd
          SUBSTR('abcdefg', -3): efg
       SUBSTR('abcdefg', 3, -2):
SUBSTR('abcdefg' from -4 for 2): de
1 row in set

```

## SUBSTRING

**声明**

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

```

**说明**

同 `SUBSTR`。

## TRIM

**声明**

```javascript
TRIM([[{BOTH | LEADING | TRAILING}] [remstr] FROM] str)

```

**说明**

删除字符串所有前缀和/或后缀，默认为 `BOTH`。参数中包含 `NULL` 时，返回 `NULL`。

**示例**

```javascript
obclient> SELECT
     TRIM(' bar '),
     TRIM(LEADING 'x' FROM 'xxxbarxxx'),
     TRIM(BOTH 'x' FROM 'xxxbarxxx'),
     TRIM(TRAILING 'x' FROM 'xxxbarxxx')
     \G
*************************** 1. row ***************************
                      TRIM(' bar '): bar
 TRIM(LEADING 'x' FROM 'xxxbarxxx'): barxxx
    TRIM(BOTH 'x' FROM 'xxxbarxxx'): bar
TRIM(TRAILING 'x' FROM 'xxxbarxxx'): xxxbar
1 row in set (0.01 sec)

```

## TO_BASE64

**声明**

```sql
TO_BASE64(str)

```

**说明**

该函数将 str 参数转换为 base-64 编码形式，并将结果作为带有连接字符集和排序规则的字符串返回。

如果参数不是字符串，则在转换之前将其转换为字符串。如果参数为 NULL，则结果为 NULL。

Base-64 编码的字符串可以使用 FROM_BASE64() 函数进行解码。

如下为 TO_BASE64() 和 FROM_BASE64() 使用的编码和解码规则：

- 字母值 62 的编码是"+"。
 - 字母值 63 的编码是"/"。
 - 编码输出由 4 个可打印字符组组成。输入数据的每 3 个字节使用 4 个字符进行编码。如果最后一组不完整，则用"="字符填充至长度为 4。
 - 编码输出的每 76 个字符后添加一个换行符，以将长输出分成多行。
 - 解码识别并忽略换行符、回车符、制表符和空格。

**示例**

```sql
obclient> SELECT TO_BASE64('12345');
+--------------------+
| TO_BASE64('12345') |
+--------------------+
| MTIzNDU=           |
+--------------------+
1 row in set

```

## LTRIM

**声明**

```javascript
LTRIM(str)

```

**说明**

删除字符串左侧的空格。

## RTRIM

**声明**

```javascript
RTRIM(str)

```

**说明**

删除字符串右侧的空格。

## ASCII

**声明**

```javascript
ASCII(str)

```

**说明**

返回字符串最左侧字符的 ASCII 码。

## ORD

**声明**

```javascript
ORD(str)

```

**说明**

返回字符串最左侧字符的字符码。单字节编码如果最左侧字符是多字节编码字符，返回值计算规则如下：

```javascript
(1st byte code)
+ (2nd byte code * 256)
+ (3rd byte code * 256^2) ...

```

**例子**

```javascript
obclient> SELECT ORD('中国');
+---------------+
| ORD('中国') |
+---------------+
|      14989485 |
+---------------+
1 row in set

```

## LENGTH

**声明**

```javascript
LENGTH(str)

```

**说明**

返回 `str` 的字节长度。

**示例**

```javascript
obclient> SELECT LENGTH('中国'), LENGTH('hello');
+------------------+-----------------+
| LENGTH('中国') | LENGTH('hello') |
+------------------+-----------------+
|                6 |               5 |
+------------------+-----------------+
1 row in set

```

## CHAR_LENGTH

**声明**

```javascript
CHAR_LENGTH(str)

```

**说明**

返回字符串包含的字符数。

**示例**

```javascript
obclient> SELECT CHAR_LENGTH('中国'), CHAR_LENGTH('hello');
+-----------------------+----------------------+
| CHAR_LENGTH('中国') | CHAR_LENGTH('hello') |
+-----------------------+----------------------+
|                     2 |                    5 |
+-----------------------+----------------------+
1 row in set

```

## UPPER

**声明**

```javascript
UPPER(str)

```

**说明**

将字符串中的小写字母转化为大写字母。

**示例**

```javascript
obclient> obclient> SELECT UPPER('obclient您好！');
+----------------------------+
| UPPER('obclient您好！')    |
+----------------------------+
| OBCLIENT您好！             |
+----------------------------+
1 row in set

```

## LOWER

**声明**

```javascript
LOWER(str)

```

**说明**

将字符串中的大写字母转化为小写字母。

**示例**

```javascript
obclient> SELECT LOWER('obclient您好！');
+-----------------------------+
| LOWER('obclient您好！') |
+-----------------------------+
| obclient您好！          |
+-----------------------------+
1 row in set

```

## HEX

**声明**

```javascript
HEX(str)

```

**说明**

将数字或字符串转化为十六进制字符串。

**示例**

```javascript
obclient> SELECT HEX(255), HEX('abc');
+----------+------------+
| HEX(255) | HEX('abc') |
+----------+------------+
| FF       | 616263     |
+----------+------------+
1 row in set

```

## UNHEX

**声明**

```javascript
UNHEX(str)

```

**说明**

将十六进制字符串转化为正常字符串。

**示例**

```javascript
obclient> SELECT UNHEX('4f6365616e42617365');
+-----------------------------+
| UNHEX('4f6365616e42617365') |
+-----------------------------+
| OceanBase                   |
+-----------------------------+
1 row in set

```

## MD5

**声明**

```javascript
MD5(str)

```

**说明**

返回字符串的 MD5 值。

**示例**

```javascript
obclient> SELECT MD5(1);
+----------------------------------+
| MD5(1)                           |
+----------------------------------+
| c4ca4238a0b923820dcc509a6f75849b |
+----------------------------------+
1 row in set

```

## INT2IP

**声明**

```javascript
INT2IP(int_value)

```

**说明**

将整数内码转换成 IP 地址。

**示例**

```javascript
obclient> SELECT
     INT2IP(16777216),
     HEX(16777216),
     INT2IP(1)
     \G
*************************** 1. row ***************************
INT2IP(16777216): 1.0.0.0
   HEX(16777216): 1000000
       INT2IP(1): 0.0.0.1
1 row in set

```

## IP2INT

**声明**

```javascript
IP2INT('ip_addr')

```

**说明**

将 IP 地址转换成整数内码。

**示例**

```javascript
obclient> SELECT
     IP2INT('0.0.0.1'),
     HEX(IP2INT('0.0.0.1')),
     HEX(IP2INT('1.0.0.0'))
     \G
*************************** 1. row ***************************
     IP2INT('0.0.0.1'): 1
HEX(IP2INT('0.0.0.1')): 1
HEX(IP2INT('1.0.0.0')): 1000000
1 row in set

```

## LIKE

**声明**

```javascript
str1 [NOT] LIKE str2 [ESCAPE str3]

```

**说明**

字符串通配符匹配。参数中包含 `NULL` 时，返回 `NULL`。

通配符包括：

- `%`：匹配任意长度字符串。
 - `_`：匹配单个字符。

`ESCAPE` 用于定义转义符，如果 `str2` 中包含 `str3`，在匹配时 `str3` 后的字符将做为普通字符处理。

**示例**

```javascript
obclient> SELECT 'ab%' LIKE 'abc%' ESCAPE 'c';
+------------------------------+
| 'ab%' LIKE 'abc%' ESCAPE 'c' |
+------------------------------+
|                            1 |
+------------------------------+
1 row in set

```

## REGEXP

**声明**

```javascript
str [NOT] REGEXP | RLIKE pat

```

**说明**

正则匹配。参数中包含 `NULL` 时，返回 `NULL`。

**示例**

```javascript
obclient> SELECT
     1234 REGEXP 1,
     'hello' RLIKE 'h%'
     \G
*************************** 1. row ***************************
     1234 REGEXP 1: 1
'hello' RLIKE 'h%': 0
1 row in set

```

## REPEAT

**声明**

```javascript
REPEAT(str, count)

```

**说明**

返回 `str` 重复 `count` 次组成的字符串。`count` 小于等于 0 时，返回空字符串。参数中包含 `NULL` 时，返回 `NULL`。

**示例**

```javascript
obclient> SELECT
     REPEAT('1', -1),
     REPEAT(null, null),
     REPEAT('Abc', 4)
     \G
*************************** 1. row ***************************
   REPEAT('1', -1):
REPEAT(null, null): NULL
  REPEAT('Abc', 4): AbcAbcAbcAbc
1 row in set

```

## SPACE

**声明**

```javascript
SPACE(N)

```

**说明**

返回包含 `N` 个空格的字符串。

## SUBSTRING_INDEX

**声明**

```javascript
SUBSTRING_INDEX(str, delim, count)

```

**说明**

在定界符 `delim` 以及 `count` 出现前，从字符串 `str` 返回字符串。若 `count` 为正值，则返回最终定界符（从左边开始）左边的一切内容。若 `count` 为负值，则返回定界符（从右边开始）右边的一切内容。任意一个参数为 NULL，返回 NULL；若 `str` 或 `delim` 为空字符串，则返回空串；若 `count` = 0, 返回空串。

*`str`, `delim`, `count` 参数支持数值与字符串的隐式转换。*

**示例**

```javascript
obclient> select substring_index('abcdabc', 'abc', 0), substring_index('abcdabc', 'abc', 1), substring_index('abcdabc', 'abc', 2), substring_index('abcdabc', 'abc', 3), substring_index('abcdabc', 'abc', -1), substring_index('abcdabc', 'abc', -2), substring_index('abcdabc', 'abc', -3)\G;
*************************** 1. row ***************************
 substring_index('abcdabc', 'abc', 0):
 substring_index('abcdabc', 'abc', 1):
 substring_index('abcdabc', 'abc', 2): abcd
 substring_index('abcdabc', 'abc', 3): abcdabc
substring_index('abcdabc', 'abc', -1):
substring_index('abcdabc', 'abc', -2): dabc
substring_index('abcdabc', 'abc', -3): abcdabc
1 row in set

```

## LOCATE

**声明**

`LOCATE(substr,str) , LOCATE(substr,str,pos)`

**说明**

第一个语法返回字符串 `str` 中子字符串 `substr` 的第一个出现位置。第二个语法返回字符串 `str` 中子字符串 `substr` 的第一个出现位置, 起始位置在 `pos`。如若 `substr` 不在 `str` 中，则返回值为 0。

**示例**

```javascript
obclient> SELECT LOCATE('bar', 'foobarbar'), LOCATE('xbar', 'foobar'), LOCATE('bar', 'foobarbar',5);
+----------------------------+--------------------------+------------------------------+
| LOCATE('bar', 'foobarbar') | LOCATE('xbar', 'foobar') | LOCATE('bar', 'foobarbar',5) |
+----------------------------+--------------------------+------------------------------+
|                          4 |                        0 |                            7 |
+----------------------------+--------------------------+------------------------------+
1 row in set

```

## POSITION

**声明**

`POSITION(substr IN str)`

**说明**

与 `LOCATE` 同义。

## INSTR

**声明**

`INSTR(str,substr)`

**说明**

返回字符串 `str` 中子字符串的第一个出现位置。这和 `LOCATE()` 的双参数形式相同，除非参数的顺序被颠倒。

**示例**

```javascript
obclient> SELECT INSTR('foobarbar', 'bar'), INSTR('xbar', 'foobar');
+---------------------------+-------------------------+
| INSTR('foobarbar', 'bar') | INSTR('xbar', 'foobar') |
+---------------------------+-------------------------+
|                         4 |                       0 |
+---------------------------+-------------------------+
1 row in set

```

## REPLACE

**声明**

`REPLACE(str, from_str, to_str)`

**说明**

返回字符串 `str` 以及所有被字符 `to_str` 替代的字符串 `from_str`。

**示例**

```javascript
obclient> SELECT REPLACE('abc.efg.gpg.nowdew.abc.dabc.e', 'abc.', 'www');
+---------------------------------------------------------+
| REPLACE('abc.efg.gpg.nowdew.abc.dabc.e', 'abc.', 'www') |
+---------------------------------------------------------+
| wwwefg.gpg.nowdew.wwwdwwwe                              |
+---------------------------------------------------------+
1 row in set

```

## FIELD

**声明**

`FIELD(str,str1,str2,str3,...)`

**说明**

返回参数 `str` 在 `str1`, `str2`, `str3`,... 列表中的索引位置（从 1 开始的位置）。在找不到 `str` 的情况下，返回值为 0。

如果所有的对于 `FIELD()` 的参数均为字符串，则所有参数均按照字符串进行比较。如果所有的参数均为数字，则按照数字进行比较。否则，参数均按照 double 类型进行比较。

如果 `str` 为 NULL，则返回值为 0，原因是 NULL 不能同任何值进行同等比较。`FILED()` 是 `ELT()` 的补数。

**示例**

```javascript
obclient> select field('abc','abc1','abc2','abc','abc4','abc'), field(NULL, 'null1', NULL);
+-----------------------------------------------+----------------------------+
| field('abc','abc1','abc2','abc','abc4','abc') | field(NULL, 'null1', NULL) |
+-----------------------------------------------+----------------------------+
|                   3 |                          0 |
+-----------------------------------------------+----------------------------+
1 row in set

```

## ELT

**声明**

`ELT(N, str1, str2, str3,...)`

**说明**

若 N=1，则返回值为 `str1`；若 N=2，则返回值为 `str2`；以此类推。若 N 小于 1 或大于参数的数目，则返回值为 NULL。`ELT()` 是 `FIELD()` 的补数。

**示例**

```javascript
obclient> select elt(3, 'abc1', 'abc2', 'abc', 'abc4', 'abc'), elt(0, 'null1', NULL);
+----------------------------------------------+-----------------------+
| elt(3, 'abc1', 'abc2', 'abc', 'abc4', 'abc') | elt(0, 'null1', NULL) |
+----------------------------------------------+-----------------------+
| abc                                          | NULL                  |
+----------------------------------------------+-----------------------+
1 row in set

```

## INSERT

**声明**

`INSERT (str1,pos,len,str2)`

**说明**

返回字符串 `str1`，字符串中起始于 `pos` 位置，长度为 `len` 的子字符串将被 `str2` 取代。如果 `pos` 超过字符串长度，则返回值为原始字符串。 假如 `len` 的长度大于其它字符串的长度，则从位置 `pos` 开始替换。若任何一个参数为 null，则返回值为 NULL。这个函数支持多字节字元。

- `str1` 和 `str2` 必须是字符串，`pos` 和 `len` 必须是整数。任意参数为 NULL，结果总为 NULL。
 - `str1` 和 `str2` 中的文字符被当做字节流看待。*
 - `pos` 值为负数或者大于 `str1` 长度时，返回 `str1`。
 - 当 `len` 小于 0，或大于 `str1` 的长度时，返回结果为 `str1` 从开头到 `pos` 位置的串，和 `str2` 的组合串。

**示例**

```javascript
obclient> select insert('Quadratic',-2,100,'What'), insert('Quadratic',7,3,'What'),
     insert('Quadratic',-1,3,'What'), insert('Quadratic',10,3,'What'), insert('Quadratic',5,-1,''),
     insert('Quadratic',7,-1,'What')\G;
*************************** 1. row ***************************
insert('Quadratic',-2,100,'What'): Quadratic
   insert('Quadratic',7,3,'What'): QuadraWhat
  insert('Quadratic',-1,3,'What'): Quadratic
  insert('Quadratic',10,3,'What'): Quadratic
      insert('Quadratic',5,-1,''): Quad
  insert('Quadratic',7,-1,'What'): QuadraWhat
1 row in set

```

## LPAD

**声明**

`LPAD(str, len, padstr)`

**说明**

用指定字符串 `padstr`，在左侧填充字符串 `str` 到指定长度 `len`。如果 `str` 长度大于 `len`，则 `str` 被截断。

**示例**

```javascript
obclient> SELECT LPAD('hi',4,'??');
+-------------------+
| LPAD('hi',4,'??') |
+-------------------+
| ??hi              |
+-------------------+
1 row in set

obclient> SELECT LPAD('hi',1,'??');
+-------------------+
| LPAD('hi',1,'??') |
+-------------------+
| h                 |
+-------------------+
1 row in set

```

## RPAD

**声明**

`RPAD(str, len, padstr)`

**说明**

用指定字符串 `padstr`，在右侧填充字符串 `str` 到指定长度 `len`。如果 `str` 长度大于 `len`，则 `str` 被截断。

**示例**

```javascript
obclient> SELECT RPAD('hi',4,'??');
+-------------------+
| RPAD('hi',4,'??') |
+-------------------+
| hi??              |
+-------------------+
1 row in set

obclient> SELECT RPAD('hi',1,'??');
+-------------------+
| RPAD('hi',1,'??') |
+-------------------+
| h                 |
+-------------------+
1 row in set

```

## UUID

**声明**

`uuid()`

**说明**

生成一个全局唯一 ID。

**示例**

```javascript
obclient> select uuid();
+--------------------------------------+
| uuid()                               |
+--------------------------------------+
| f756a1f6-4de6-11e8-90af-90b11c53e421 |
+--------------------------------------+
1 row in set

```

## BIN

**声明**

`bin(N)`

**说明**

返回数字 N 的二进制形式。

**示例**

```javascript
obclient> SELECT BIN(12);
+---------+
| BIN(12) |
+---------+
| 1100    |
+---------+
1 row in set

```

## QUOTE

**声明**

`quote(str)`

**说明**

引用一个字符串以产生一个结果可以作为 SQL 语句中正确地转义数据值。返回的字符串由单引号和单引号的各个实例封闭('')，反斜线('')，ASCII NUL 和 Control-Z 前面加一个反斜杠。如果参数为 NULL，则返回值是词 'NULL' 不包括单引号。

**示例**

```javascript
obclient> SELECT QUOTE('Don\'t!');
+------------------+
| QUOTE('Don\'t!') |
+------------------+
| 'Don\'t!'        |
+------------------+
1 row in set

obclient> SELECT QUOTE(NULL);
+-------------+
| QUOTE(NULL) |
+-------------+
| NULL        |
+-------------+
1 row in set

```

## REGEXP_SUBSTR

**声明**

`REGEXP_SUBSTR(str,pattern,[position[,occurrence[,match_param[,subexpr]]]])`

**说明**

在 `str` 中搜索匹配正则表达式 `pattern` 的子串，子串不存在返回 NULL。这个函数支持多字节字元。除 `match_param` 外，其他任意参数为 NULL，结果为 NULL。

- `str` 待搜索的字符串，支持多字节字元。
 - `pattern` 正则表达式，正则表达式规则兼容 MySQL 数据库。
 - `position` 为搜索的开始位置。必须是大于 0 的正整数，小于等于 0 报错，输入为 NULL 返回 NULL，默认值为 1，表示从第一个字符开始搜索。
 - `occurrence` 返回第几次匹配的值。必须是大于等于 0 的正整数，小于等于 0 报错，输入为 NULL 返回 NULL，默认值是 1，表示返回第一次匹配的结果。
 - `match_param` 搜索参数，字符串类型，目前仅支持两个字符 'i','c'。i: 代表忽略大小写，c: 代表不忽略，其他字符报错。默认值根据 `str` 字符集的 collection 决定。 为 NULL 时使用默认值。
 - `subexpr` 返回正则表达式中第几个组的值。大于等于 0 的整数，小于 0 则报错。默认值是 0，表示返回满足整个 `pattern` 的子串。

**示例**

```javascript
obclient> select regexp_substr('I have 2 apples and 100 bucks!', '[[:blank:]][[:alnum:]]*', 1, 1) from dual;
+----------------------------------------------------------------------------------+
| regexp_substr('I have 2 apples and 100 bucks!', '[[:blank:]][[:alnum:]]*', 1, 1) |
+----------------------------------------------------------------------------------+
|  have                                                                            |
+----------------------------------------------------------------------------------+
1 row in set

obclient> select regexp_substr('foothebar', 'foo(.*)(bar)', 1, 1, 'c', 1) from dual;
+----------------------------------------------------------+
| regexp_substr('foothebar', 'foo(.*)(bar)', 1, 1, 'c', 1) |
+----------------------------------------------------------+
| the                                                      |
+----------------------------------------------------------+
1 row in set

```

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
