pingcap / pingcap/tidb

regexp_replace doesn't work correctly

Open
#61,039 0 comments 0 reactions 0 assignees View on GitHub
severity/moderate sig/execution type/bug
Dominant language
Go
Stars
40.5k
Forks
6.2k
PR merge metrics
PR metrics pending

Description

## Bug Report

Please answer these questions before submitting your issue. Thanks!

### 1. Minimal reproduce step (Required)

```
CREATE TABLE `table` (`name` VARCHAR(45) NOT NULL);
insert into `table` (name) values ('1 1 1'),('2 2 2'),('3 3 3');
SELECT regexp_replace(name, "^([[:alnum:]]+)[[:space:]].*$","$1") FROM `table`;
SELECT regexp_replace(name, '^([a-zA-Z0-9]+)\\s.*$', '$1') FROM `table`;

```

### 2. What did you expect to see? (Required)
results from mysql
```
MySQL [testdb_1746708950636]> SELECT regexp_replace(name, "^([[:alnum:]]+)[[:space:]].*$","$1") FROM `table`;
+------------------------------------------------------------+
| regexp_replace(name, "^([[:alnum:]]+)[[:space:]].*$","$1") |
+------------------------------------------------------------+
| 1 |
| 2 |
| 3 |
+------------------------------------------------------------+
3 rows in set (0.04 sec)
```

### 3. What did you see instead (Required)
resutls from tidb
```
MySQL [testdb_1746708950636]> SELECT regexp_replace(name, "^([[:alnum:]]+)[[:space:]].*$","$1") FROM `table`;
+------------------------------------------------------------+
| regexp_replace(name, "^([[:alnum:]]+)[[:space:]].*$","$1") |
+------------------------------------------------------------+
| $1 |
| $1 |
| $1 |
+------------------------------------------------------------+
3 rows in set (0.00 sec)

MySQL [testdb_1746708950636]> SELECT regexp_replace(name, '^([a-zA-Z0-9]+)\\s.*$', '$1') FROM `table`;
+-----------------------------------------------------+
| regexp_replace(name, '^([a-zA-Z0-9]+)\\s.*$', '$1') |
+-----------------------------------------------------+
| $1 |
| $1 |
| $1 |
+-----------------------------------------------------+
3 rows in set (0.01 sec)
```

### 4. What is your TiDB version? (Required)

```

MySQL [testdb_1746708950636]> select tidb_version();
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| tidb_version() |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Release Version: v8.5.1
Edition: Community
Git Commit Hash: fea86c8e35ad4a86a5e1160701f99493c2ee547c
Git Branch: HEAD
UTC Build Time: 2025-01-16 07:38:34
GoVersion: go1.23.4
Race Enabled: false
Check Table Before Drop: false
Store: tikv |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.