用sql中的单个select语句替换多次出现

时间:2016-06-02 18:31:52

标签: mysql

我有两张桌子。

第1个是具有值

的标题栏的句子表
my name is A  
B is my name   
i am A boy

第二个是dict表,其val列和val1列的值为

val         val1   
A           B   
B           A  
boy         girl  

我想编写一个查询,用val1替换title列中每次出现的val而不使用游标。

1 个答案:

答案 0 :(得分:0)

在MySql中,您可以使用replace和like

select s.title,  replace (s.title, d.val, d.val1) as replaced
from  sentence as s
join dicts as d on (d.val like  concat(s.val , ' %') 
                          or d.val like  concat('% ',s.val , ' %') 
                          or d.val like  concat('% ',s.val ) );