我想用PHP替换文本字符串中的某些单词& MySQL。替换mysql中的单词
例如, -
数据库中的文本列包含值“Word1 word2 word3 word4 word5 word3”。
我想用“新词”替换“word3”和“word4”。挑战不是取代也是“word3”的最后一个词
有什么建议吗?
我想用PHP替换文本字符串中的某些单词& MySQL。替换mysql中的单词
例如, -
数据库中的文本列包含值“Word1 word2 word3 word4 word5 word3”。
我想用“新词”替换“word3”和“word4”。挑战不是取代也是“word3”的最后一个词
有什么建议吗?
可以使用通配符字符和控制符号,以取代%字%或%wo.d%以同样的方式,你可以停止更换如果达到符号的某些计数
另外,如果你想代替像'word1,word2,word3,word4,word3'这样的smth,你可以'UPDATE table SET col ='word,1 word2 ,wordX,word4,word3'where col ='word1,word2,word3,word4,word3'但我不认为它是通用的做事方法,LIKE搜索也不会有太大帮助 –
的MySQL:
UPDATE `tableName`
SET `field` = REPLACE(' word3 ', ' newword ', REPLACE(' word4 ', ' newword ', `field`));
注意word3
和word4
之前和之后的额外空格。
基于评论:
UPDATE `tableName`
SET `field` = TRIM(REPLACE(' word3 word4 ', ' newword ', CONCAT(' ', `field`)));
嘿谢谢。我想用一个单词替换word3和word4。从上面的语句也可以看出,word3的两个实例都不会被替换吗? – user2131970
但它不会处理最后的话。在后面看到“挑战不是取代也是”word3“的最后一个单词” –
它将处理最后一个单词,因为REPLACE参数中的尾部空格。但我认为它不会处理“word3”或“word4”是* first *这个词的情况。也许把'field'改成'CONCAT(',field)'? –
你可以使用这个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”; >
在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");
?>
此分割的话到一个数组,替换所有word3
和word4
与newword
除了用于阵列的最后一个元素,然后加入词语回为串。输出如期:
Word1 word2 newword newword word5 word3
此问题没有显示任何研究工作。 **做你的作业很重要**。告诉我们你发现了什么,***为什么它不符合你的需求。这表明你已经花时间去尝试帮助你自己了,它使我们避免重申明显的答案,最重要的是它可以帮助你得到更具体和相关的答案。 [FAQ](http://stackoverflow.com/questions/how-to-ask)。 –
建议学习字符串函数,如'str_replace()' – samayo
替换数据库或输出中? – hjpotter92