mysql - 如何更新和替换忽略大小写

标签 mysql sql

如何更新列 - 不区分大小写 ??

如果我运行下面的查询,它会按预期返回 62 条记录:

select entity_id 
from field_data_body 
where body_value like '%mailto:iss.servicedesk@example.com%';

Returns 62 Records

我正在尝试更新这些记录,以便使用以下方法将 iss.servicedesk@example.com 替换为 http://iss.servicedesk.example.com查询:

update field_data_body
SET body_value = REPLACE(body_value,'%mailto:iss.servicedesk@example.com%',
                        'http://iss.servicedesk.example.com');

不幸的是,它只更新了 52 条记录,因为它正在运行区分大小写的查询,例如Iss.Servicedesk@example.com 在上述查询中未被识别。

我如何运行上述更新查询,但不区分大小写以获取我希望更新的所有表?

我已经更新了下面的查询 - 它运行但是当我知道有链接需要更新时没有找到任何要更新的结果:

update `field_data_body` SET `body_value` = REPLACE(body_value,'%mailto:iss.servicedesk@example.com%','https://iss.servicedesk.example.com')
where LOWER(CONVERT( body_value USING latin1)) like '%mailto:iss.servicedesk@example.com%'

关于我需要做些什么来修复它以使其正常运行有什么建议吗?

最佳答案

在查询中使用 UPPER()LOWER() 函数。

关于mysql - 如何更新和替换忽略大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12248041/

相关文章:

mysql - 使用大型 IN() 子句或派生表联接优化 MySQL 查询

MySQL 长于文本大小,短于中文本大小

mysql - 在 SQL 的同一列中返回 MONTH 和 YEAR

mysql - Android Studio 是否有任何 Sqlite 扩展?

sql - 使用 REPLACE INTO 更新表中的时间戳

java - 如何在Java命名参数jdbc模板批量更新插入查询中映射具有特殊字符的列?

mysql - MySQL 上共同好友订购的好友推荐

php - 需要有关多个 WHERE 子句的帮助

MySQL实体关系图不显示外键链接

c# - 使用 Linq 匹配本地列表中任何对象的 2 属性