[英]How to find and replace string in MYSQL that have <> " ' in database?
[英]How to find and replace string in mysql query
我有这样的东西
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播放器”。如何正确设置? 谢谢
如果您要将所有Flash值都删除到Flash Player中,则可以简单地使用like查询。
UPDATE `keyword` set `keyword` = 'Flash Player' where `keyword` like '%flash%';
您必须使用LIKE而不是INSTR
因此,您的查询必须如下所示
UPDATE keyword SET keyword= REPLACE(keyword, 'incorrect_keyword', 'correct_keyword') WHERE `keyword` LIKE CONCAT('%',`incorrect_keyword`,'%');
假定不正确的关键字和关键字是列名
为更新添加一个ORDER BY:
$query="UPDATE keyword SET keyword= REPLACE(keyword, `incorrect_keyword`, `correct_keyword`) WHERE INSTR(keyword, 'incorrect_keyword') > 0" ORDER BY No DESC;
一些ucwords的php等效文件在这里。
https://www.thingy-ma-jig.co.uk/blog/30-09-2010/mysql-how-upper-case-words
有点乏味,但应该会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.