我有以下MySQL查询,可以拉回400条记录:

SELECT email FROM user WHERE email LIKE 'GMSD%@law.com'

返回:

GMSDK001@law.comGMSDK400@law.com

我想要做的是在一个简单的UPDATE中删除所有400个邮箱地址中的K,所以返回的是GMSD001@law.comGMSD400@law.com.

我如何才能从LIKE查询中执行此操作?以某种方式使用RegEx?

推荐答案

你最初的疑问似乎...关闭:

SELECT email FROM users WHERE user LKE ...

这难道不应该是:

SELECT email FROM users WHERE email LIKE ...

此外,LIKE 'GMSD%@law.com'可能应该是LIKE 'GMSDK%@law.com',以捕获实际包含K的值.

我希望使用一些简单的方法,比如使用MySQL的REPLACE()函数来处理这个问题:

UPDATE
  users
SET
  email = REPLACE(email, 'GMSDK', 'GMSD')
WHERE
  email LIKE 'GMSDK%@law.com'

编辑:根据我的经验,表名是plural,所以是users而不是user.如果您确实使用的是user,请根据需要进行调整.

Mysql相关问答推荐

MySQL binlog事件上的并发事务行为

从insert语句获取新生成的虚拟UUID

Mysql:使用like Select 查询

没有 ORDER BY 的查询性能很高,有 ORDER BY 的查询速度慢得像爬行一样

在 mySQL 中计算每日数组的每周指标

在带有 D.I 的 .NET AWS Lambda 中使用 MySql.Data

从 MySQL WordPress Select 最后一行

for each 查询设置 MySQL @@session.time_zone 而不是 CONVERT_TZ 的缺点?

判断一列中的多个值并返回值 1 或 0

MYSQL:范围匹配与周年纪念日

MYSQL:如何根据之前的相关记录获取记录

使用 DISTINCT 时无法从数据库中查询所有数据

MySQL - 考虑到所有前几天,每天计算唯一用户

MYSQL LOAD DATA INFILE 语句适用于工作台,但不适用于 python

如何通过未知列中的唯一值有效地更新 MySQL 行

如何在 Mysql 中创建复合外键

何时在 mysql 中使用 TEXT 而不是 VARCHAR

如何存储重复日期牢记夏令时

MySQL 删除多列

什么是mysql的BETWEEN性能超过..?