2012-02-20 51 views
1

我已經得到的數據:我需要查找和替換像這樣 n在MySQL領域

1個街道\ n2street \ nmycity \ nmytown

我想要做的是替換\ n,其中焦炭(10),因爲我需要在db字段中真正的linebreak。

我有:

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

但是,這是行不通的。

任何人都可以幫忙嗎?

+0

你得到任何錯誤或你沒有得到你想要的東西。 – Vikram 2012-02-20 13:56:31

+0

這應該適用於表'data'中具有值'shipping_address'的字段'key'的所有條目。不過,我認爲你想在整個數據表的每一個條目中進行替換。爲此只需省略整個WHERE部分。 – s1lence 2012-02-20 13:57:48

回答

7
UPDATE data set `value` = REPLACE(`value`,'\\n', CHAR(10)) WHERE `key`='shipping_address'; 
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'; 
+0

大部分工作。我不得不將它從char(10)+ char(13)改爲char(10),因爲使用代碼插入'0'代替\ n。這是奇怪的,因爲你在那裏指定了正確的char代碼,我忘記了char(13)。儘管乾杯! – bjohnb 2012-02-20 16:50:37

+0

@bjohnb羅傑說,我編輯了我的答案然後:) – 2012-02-20 17:26:45

+0

是的,對不起,@aF,我想給你打勾,但它沒有引用正確,我看到別人給出了正確的答案sooo我有把它給他們。我真誠的aplogies;) – bjohnb 2012-02-20 20:59:18

0

新行字符是「\ n'(換行符)或'\ r'(回車符),或者CR後跟LF'\ r \ n',具體取決於操作系統。

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

我的情況:它沒有工作,因爲我認爲它有\ n,而是它有\ r

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