Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何向字符串中的特定索引添加字符_Mysql_Sql_String_Sql Update_Where Clause - Fatal编程技术网

Mysql 如何向字符串中的特定索引添加字符

Mysql 如何向字符串中的特定索引添加字符,mysql,sql,string,sql-update,where-clause,Mysql,Sql,String,Sql Update,Where Clause,我有一个数据库的电子邮件地址,共15个字符 有些长度为14个字符,它们有相同的共同点,它们在第三个索引中的名称中缺少一个0 我的id号也有类似的问题,但这很容易解决,因为我必须将0推到第一个索引 我的预期结果应该是变化的'aa-001@test.me“至”aa-0001@test.me“要将0添加为电子邮件中的第4个字符(共14个字符),您只需使用SUBSTR: SELECT CONCAT(SUBSTR(email, 1, 3), '0', SUBSTR(email, 4)) FROM myta

我有一个数据库的电子邮件地址,共15个字符

有些长度为14个字符,它们有相同的共同点,它们在第三个索引中的名称中缺少一个
0

我的id号也有类似的问题,但这很容易解决,因为我必须将0推到第一个索引


我的预期结果应该是变化的
'aa-001@test.me“
”aa-0001@test.me“

要将
0
添加为
电子邮件中的第4个字符(共14个字符),您只需使用
SUBSTR

SELECT CONCAT(SUBSTR(email, 1, 3), '0', SUBSTR(email, 4))
FROM mytable
WHERE LENGTH(email) = 14
另一个解决方案是使用
REGEXP\u REPLACE
,正则表达式只匹配14个字符的电子邮件;这避免了使用
WHERE
子句,因为与模式不匹配的电子邮件将原封不动地返回:

SELECT REGEXP_REPLACE(email, '^(.{3})(.{11})$', CONCAT('$1', '0', '$2'))
FROM t
D小提琴:


那么简单的方法呢?
CONCAT(SUBSTR(…,1,3),'0',SUBSTR(…,3))
 WITH t AS (SELECT 'aa-001@test.me' email UNION SELECT 'bb-0002@test.me')
 SELECT CONCAT(SUBSTR(email, 1, 3), '0', SUBSTR(email, 4))
 FROM t
 WHERE LENGTH(email) = 14

| CONCAT(SUBSTR(email, 1, 3), '0', SUBSTR(email, 4)) |
| :----------------------------------------------------- |
| aa-0001@test.me                                        |


 WITH t AS (SELECT 'aa-001@test.me' email UNION SELECT 'bb-0002@test.me')
 SELECT REGEXP_REPLACE(email, '^(.{3})(.{11})$', CONCAT('$1', '0', '$2'))
 FROM t

| REGEXP_REPLACE(email, '^(.{3})(.{11})$', CONCAT('$1', '0', '$2')) |
| :---------------------------------------------------------------- |
| aa-0001@test.me                                                   |
| bb-0002@test.me