2011-05-17 68 views
1

大家好,我有一個問題,谷歌還沒有得到幫助,我需要,所以我將目光轉向了專家的報價;)MySQL的替換支架

我有一個MySQL數據庫和一個字段用於用戶輸入。有些用戶覺得需要引用他們的條目,如「奶酪新聞」,我需要將該列中所有具有「引號」的條目更改爲如下括號:(奶酪新聞)

我試過這些:

UPDATE `inputColumn` SET `userInput` = REPLACE(`userInput`, '"', '('); 

的結果是顯而易見的,第二我打輸入:(奶酪按( 我這樣做的一個測試場,無後顧之憂

然後我嘗試:

UPDATE `inputColumn` SET `userInput` = REPLACE(`userInput`, '"%', '('); 

這一點都沒有做任何事情,也沒有

UPDATE `inputColumn` SET `userInput` = REPLACE(`userInput`, '"%"', '(%)'); 

我真的不想去通過和更新3000條記錄手動:)任何想法?

+0

這應該在應用程序級別進入數據庫之前完成。這對於一次性交易來說很好,但是使用該應用程序將來會過濾這些內容。 – 2011-05-17 23:08:34

+0

此外,那些是parens /括號,括號通常是[] – 2011-05-17 23:13:11

回答

2

也許是這樣的。

UPDATE `inputColumn` 
SET `userInput` = CONCAT('(', SUBSTR(`userInput`, 2, LENGTH(`userInput`)-2), ')') 
WHERE `userInput` LIKE '"%"'; 
+0

哇,像魅力一樣工作。謝謝! – Jmichelsen 2011-05-18 18:32:05

1

它有點cludge的,但如果你能相信有第一次報價之前的空間和之後的第二空間,然後嘗試

UPDATE `inputColumn` SET `userInput` = REPLACE(`userInput`, ' "', ' ('); 

UPDATE `inputColumn` SET `userInput` = REPLACE(`userInput`, '" ', ')'); 

請注意空格和不同的括號。

+0

嗯,這給了我一些想法。從我簡短的看,在第一次報價之前沒有空格,但偶爾在第二次報價之後有空格。我可以先在第二個支架上運行這個改變,然後對報價進行一攬子更新以將它們全部更改爲(我會做一些清理工作,但是它肯定會減少我將要進行的更改手動進行...我會給這個試試,並更新這個線程。謝謝! – Jmichelsen 2011-05-18 04:48:38