mysql - 尝试使用 mysql/regex 重命名行名

标签 mysql sql

我正在尝试使用 mysql 和可能的正则表达式重命名列中的行或替换? 名字是这样设置的... FL_Miamidade1026295 我需要他们看起来像这样... FL迈阿密-戴德_1026295

我认为 sql 语句看起来像这样,但不确定如何进行替换部分...

UPDATE tableName
WHEN columnName LIKE '%Miamidade%'
Would need regex to somehow change only the middle part of the string  

最佳答案

如果它是您要替换的唯一模式,您可以简单地使用 replace

UPDATE tableName
SET columnName = replace(columnName,'Miamidade','Miami-Dade_')
WHERE columnName LIKE '%Miamidade%' 

如果 Miamidade 必须区分大小写(意味着 miamidade 无效),请根据数据库设置使用区分大小写的排序规则。

例如:

WHERE columnName LIKE '%Miamidade%' COLLATE latin1_general_cs

或者使用regexp binary

WHERE columnName REGEXP BINARY 'Miamidade'

关于mysql - 尝试使用 mysql/regex 重命名行名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39798885/

相关文章:

mysql - 建议用户按照SQL查询

php - 计算特定 ID 的行数

sql - 从 postgres 中的多行临时表更新表

mysql - 如何将MySQL中的时区偏移值(例如 “-0400”)转换为带有冒号(例如 “-04:00”)的值?

mysql - 一个简单的 Join 和 In 子句花费的时间太长

mysql - UNION 忽略列名?

Python 3-x 使用类似 SQL 的条件从 CSV 表中选择列和行

mysql - 访问sqlite和mysql的方式有什么区别?

mysql - SQLite 和 MySQL 复合索引与单一索引

mysql - fatal error : Call to a member function result() on a non-object in code igniter model working fine in localhost