从2行替换

时间:2015-05-18 12:22:29

标签: mysql sql

我正在尝试替换以下文字

<div>
    &nbsp;</div>
<div>
    &nbsp;</div>

<div></div>

我使用了下面的

update `mytable` set post_content = REPLACE(post_content, '<div>\n' & CHAR(9) & '&nbsp;</div>\n<div>\n' & CHAR(9) & '&nbsp;</div>', '<div></div>')

并获得以下错误

 #1292 - Truncated incorrect INTEGER value: '<div> '

1 个答案:

答案 0 :(得分:4)

不要使用&符号。那是Bitwise AND运算符(参见:https://dev.mysql.com/doc/refman/5.0/en/bit-functions.html#operator_bitwise-and),它将返回一个无符号整数。

使用concat()(参见:https://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat)。

update `mytable` 
set post_content = REPLACE(post_content, 
  concat('<div>\n\t','&nbsp;</div>\n<div>\n\t','&nbsp;</div>'),
  '<div></div>');   

它将连接所有参数并采用以下形式:

concat(str1, str2, ...)