求一高效率的算法:
表(content)表结构如下
id     content
1      我想采访你的[建造]!
2      你的声明好[洪亮]
3      不要[摆弄]你[玩具]了!
4      [悲惨]的命运
表(reg)结构如下:
id reg1   reg2
1  建造   建筑
2  洪亮   响亮
3  摆弄   玩弄
4  玩具   玩偶
5  悲惨   妻惨
如果这两个表都在同一个mysql服务器上面,如何通过mysql语法批量进行替换呢?
意思是把:表(content)中字段当中括号当中的词也就是在表(reg)当中reg1字段能匹配
的词进行替换!例如:如果在表(content)中遇到:"建造"就替换成"建筑",遇到“洪亮”
就替换成:“响亮”因为表content中字段的记录数和长度都很大,所以想求一个不错
的方法,直接输入sql语句在phpmyadmin当中进行操作,如果有会正则的朋友也可以写出来
不知道用正则是否能提高效率!

解决方案 »

  1.   

    没有什么好办法。MySQL中无法用正则来进行替换,查找倒是可以。但速度上不会有太大的提高。具体建议你可以试一下。感觉还是用程序来实现比较容易。当然你可以在MySQL中用store procedure或者用其它程序来解决。
    循环遍历每一条 reg,取出reg1,reg2
    然后 
    while reg
      update content
      set content=replace(content,@reg1,@reg2)
      where instr(content,@reg1);
    end while
      

  2.   

    ACMAIN_CHM 
    像您求一样东西:
    中文近义词替换数据库或者文本的也行,手头一个200条记录的近义词替换数据库,
    感觉太少了,希望:自由火或者有的朋友提供一下:谢谢各位帮忙了