我有类似的东西
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播放器" 怎么做对了?感谢
答案 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
有点乏味但应该有帮助。