如何在mysql查询

时间:2016-03-11 04:46:50

标签: php mysql replace find

我有类似的东西

No. | Incorrect_Keyword | Correct Keyword

1 | flash | Flash Player

2 | flash player | Flash Player

3 | flash player plugin | Flash Player

4 | flash player plgin | Flash Player

它保存在csv文件中,我使用PHP读取每一行并替换

问题出在我运行查询

$query="UPDATE keyword SET keyword= REPLACE(keyword, 'incorrect_keyword',  'correct_keyword') WHERE INSTR(keyword, 'incorrect_keyword') > 0"; 

它取代了所有" flash"到" Flash Player" 因此,记录号2将成为" FLash Player播放器" 怎么做对了?感谢

4 个答案:

答案 0 :(得分:0)

如果您要删除Flash Player中的所有Flash值,则只需使用类似查询..

UPDATE `keyword` set `keyword` = 'Flash Player' where `keyword` like '%flash%';

答案 1 :(得分:0)

您必须使用LIKE而不是INSTR

所以你的查询必须是下面的

UPDATE keyword SET keyword= REPLACE(keyword, 'incorrect_keyword',  'correct_keyword') WHERE `keyword` LIKE CONCAT('%',`incorrect_keyword`,'%');

假设errors_keyword和关键字是列名

答案 2 :(得分:0)

为UPDATE添加ORDER BY:

$query="UPDATE keyword SET keyword= REPLACE(keyword, `incorrect_keyword`,  `correct_keyword`) WHERE INSTR(keyword, 'incorrect_keyword') > 0" ORDER BY No DESC; 

答案 3 :(得分:0)

这里有一些与ucwords相当的php。

https://www.thingy-ma-jig.co.uk/blog/30-09-2010/mysql-how-upper-case-words

有点乏味但应该有帮助。