替换mysql中的单词

时间:2013-03-29 13:40:18

标签: mysql replace updates

我想用PHP&更换文本字符串中的一些单词。 MySQL的。

例如 -

数据库中的text列包含值“Word1 word2 word3 word4 word5 word3”。

我想用“newword”替换“word3”和“word4”。挑战不是取代也是“word3”的最后一个词

有什么建议吗?

4 个答案:

答案 0 :(得分:0)

您可以使用通配符字符和控制符号来替换%word%或%wo.d%,就像在达到某些符号数时可以停止替换一样

答案 1 :(得分: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` )) );

答案 2 :(得分:0)

你可以使用这个php脚本将“word3”和“word4”替换为“newword”。

< PHP

$ arr = array(“word1”,“word2”,“word3”,“word4”,“word5”,“word3”,“word4”);

的print_r(str_replace函数( “WORD3”, “newword”,$ ARR,$ I));

的print_r(str_replace函数( “word4”, “newword”,$ ARR,$ I));

echo“替换:$ i”; ?>

答案 3 :(得分: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");
?>

这会将单词拆分为数组,将所有word3word4替换为newword ,除了代表数组的最后一个元素,然后加入单词回到一个字符串。输出符合预期:

Word1 word2 newword newword word5 word3