繁体   English   中英

如何在mysql查询中查找和替换字符串

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM