2013-03-29 132 views
-3

我想用PHP替換文本字符串中的某些單詞& MySQL。替換mysql中的單詞

例如, -

數據庫中的文本列包含值「Word1 word2 word3 word4 word5 word3」。

我想用「新詞」替換「word3」和「word4」。挑戰不是取代也是「word3」的最後一個詞

有什麼建議嗎?

+1

此問題沒有顯示任何研究工作。 **做你的作業很重要**。告訴我們你發現了什麼,***爲什麼它不符合你的需求。這表明你已經花時間去嘗試幫助你自己了,它使我們避免重申明顯的答案,最重要的是它可以幫助你得到更具體和相關的答案。 [FAQ](http://stackoverflow.com/questions/how-to-ask)。 –

+0

建議學習字符串函數,如'str_replace()' – samayo

+0

替換數據庫或輸出中? – hjpotter92

回答

0

可以使用通配符字符和控制符號,以取代%字%或%wo.d%以同樣的方式,你可以停止更換如果達到符號的某些計數

+0

另外,如果你想代替像'word1,word2,word3,word4,word3'這樣的smth,你可以'UPDATE table SET col ='word,1 word2 ,wordX,word4,word3'where col ='word1,word2,word3,word4,word3'但我不認爲它是通用的做事方法,LIKE搜索也不會有太大幫助 –

0

的MySQL:

UPDATE `tableName` 
SET `field` = REPLACE(' word3 ', ' newword ', REPLACE(' word4 ', ' newword ', `field`)); 

注意word3word4之前和之後的額外空格。


基於評論:

UPDATE `tableName` 
SET `field` = TRIM(REPLACE(' word3 word4 ', ' newword ', CONCAT(' ', `field`))); 
+0

嘿謝謝。我想用一個單詞替換word3和word4。從上面的語句也可以看出,word3的兩個實例都不會被替換嗎? – user2131970

+0

但它不會處理最後的話。在後面看到「挑戰不是取代也是」word3「的最後一個單詞」 –

+0

它將處理最後一個單詞,因爲REPLACE參數中的尾部空格。但我認爲它不會處理「word3」或「word4」是* first *這個詞的情況。也許把'field'改成'CONCAT(',field)'? –

0

你可以使用這個PHP腳本來代替 「WORD3」 和 「word4」 到 「newword」。

< PHP

$ ARR =陣列( 「字詞1」, 「單詞2」, 「WORD3」, 「word4」, 「的word5」, 「WORD3」, 「word4」)?; (str_replace(「word3」,「newword」,$ arr,$ i));

print_r(str_replace(「word4」,「newword」,$ arr,$ i));

echo「Replacements:$ i」; >

0

在PHP:

<?php 
$mystr = "Word1 word2 word3 word4 word5 word3"; 
$mywords = explode(' ', $mystr); 
for ($i = 0; $i < count($mywords)-1; $i++) { 
    if ($mywords[$i] == 'word3' || $mywords[$i] == 'word4') { 
    $mywords[$i] = 'newword'; 
    } 
} 
$newstr = implode(' ', $mywords); 
print("newstr = $newstr"); 
?> 

此分割的話到一個數組,替換所有word3word4newword除了用於陣列的最後一個元素,然後加入詞語回爲串。輸出如期:

Word1 word2 newword newword word5 word3