【问题标题】:Replacing string contains " \' " with MySQL Workbench用 MySQL Workbench 替换包含“\'”的字符串
【发布时间】:2021-10-25 05:47:18
【问题描述】:

我有一个数据库,我需要在其中运行 sql 脚本才能从第 3 方导出新数据。然后还需要通过 MySQL 工作台清理数据。 我目前被困在需要清理包含反斜杠和撇号组合的字符串的部分。

例如,

June\'s Wedding

我希望字符串是

June's Wedding

所以首先我会搜索这样的字符串,对吧?于是我查询了

SELECT columnname FROM tablename WHERE columnname LIKE '%\\\\''%'

在我继续 UPDATE 之前查看我的 REPLACE() 是否有效,我将查询更改为此

SELECT REPLACE(columnname,'\'','''') FROM tablename WHERE columnname LIKE '%\\\\''%'

但没有对字符串应用任何更改,因为它仍然存在

| REPLACE(columnname,'\'','''')|
+------------------------------+
| June\'s Wedding              |

我该如何解决这个问题?

我也对转义字符有点困惑,比如我需要在REPLACE() 中使用双单引号'' 还是使用\'

【问题讨论】:

    标签: mysql mysql-workbench


    【解决方案1】:

    试试这个。

    使用双引号更新

    UPDATE tbl1 SET col1 = REPLACE(col1, "\\'s", "") WHERE col1 LIKE "%\\'s%";
    

    使用单引号更新

    UPDATE tbl1 SET col1 = REPLACE(col1, '\\\'s', '') WHERE col1 LIKE '%\\\'s%';
    

    如果要对字符串使用单引号,请在 \' 之前添加 \

    看看这个Single Quote, Double Quote, and Backticks in MySQL Queries

    如果您需要在包含缩略词和引号的字符串中使用单引号和双引号,则需要使用反斜杠“”来取消后面的字符。例如:包含此 ' 的字符串会将反斜杠识别为取消单引号的语法含义的指令,并将其作为撇号插入字符串中。

    还有这个How to escape apostrophe (') in MySql?

    ' 引用的字符串中的' 可以写成''

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-08
      • 2011-03-10
      • 2019-05-25
      • 2021-11-09
      • 2019-09-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多