【问题标题】:I need to find and replace \n in a mysql field我需要在 mysql 字段中查找并替换 \n
【发布时间】:2012-03-10 20:34:54
【问题描述】:

我有这样的数据:

1 条街道\n2street\nmycity\nmytown

我想要做的是用 char(10) 替换 \n,因为我需要在 db 字段中进行真正的换行。

我有:

UPDATE data set `value` = REPLACE(`value`,'\n', char(10)) WHERE `key`='shipping_address';

但这不起作用。

有人可以帮忙吗?

【问题讨论】:

  • 您是否遇到任何错误,或者您没有得到您想要的。
  • 这应该适用于表data 中具有字段key 的值为“shipping_address”的所有条目。但是,我假设您想在整个数据表的每个条目中进行替换。为此,只需省略整个 WHERE 部分。

标签: mysql sql replace


【解决方案1】:

双反斜杠将其转义并将其视为文字:

UPDATE data set `value` = REPLACE(`value`,'\\n', char(10)) WHERE `key`='shipping_address';

【讨论】:

    【解决方案2】:
    UPDATE data set `value` = REPLACE(`value`,'\\n', CHAR(10)) WHERE `key`='shipping_address';
    

    【讨论】:

      【解决方案3】:

      你忘了像这样逃避\

      UPDATE data set `value` = REPLACE(`value`,'\\n', char(10)) WHERE `key`='shipping_address';
      

      【讨论】:

      • 这在大多数情况下都有效。我不得不将它从 char(10)+char(13) 更改为 char(10),因为使用插入“0”代替 \n 的代码。这很奇怪,因为您在那里指定了正确的字符代码,我忘记了 char(13)。不过干杯!
      • 是的,对不起,@aF,我想给你打勾,但引用不正确,我看到其他人给出了正确的答案,所以我不得不给他们。我真诚的道歉;)
      【解决方案4】:

      换行符可以是 '\n'(换行)或 '\r'(回车),也可以是 CR 后跟 LF '\r\n',具体取决于操作系统。

      UPDATE data set `value` = REPLACE(`value`,'\r' or '\n' or '\r\n', char(10)) WHERE `key`='shipping_address';
      

      【讨论】:

        【解决方案5】:

        我的情况:它不起作用,因为我认为它有 \n 但它有 \r

        update [Table] set [column]=replace(convert([column] using utf8) ,'\r','');
        

        【讨论】:

          【解决方案6】:

          我想实际替换列中的行尾。这对我有用:

          UPDATE `table`
          SET
          `column` = REPLACE(`column`, char(13), '');
          

          char(13) 是回车,char(10) 是换行。你可能有。

          【讨论】:

            猜你喜欢
            • 2022-07-02
            • 1970-01-01
            • 2020-09-23
            • 2013-03-02
            • 2022-08-03
            • 2014-08-07
            • 1970-01-01
            • 2022-09-26
            • 1970-01-01
            相关资源
            最近更新 更多