mysql - 用sql中的单个select语句替换多次出现的情况

标签 mysql

我有两张 table 。

第一个是句子表,其标题列包含值

my name is A  
B is my name   
i am A boy

第二个是字典表,其中包含 val 列和 val1 列以及值

val         val1   
A           B   
B           A  
boy         girl  

我想编写一个查询,在不使用游标的情况下用 val1 替换标题列中每次出现的 val。

最佳答案

在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 ) );

关于mysql - 用sql中的单个select语句替换多次出现的情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37599615/

相关文章:

php - 更新数据库中的正确字段

php - 通过多对多关系的对象字段从数据库中获取对象

php - Laravel 添加数据到 MySQL

mysql - 按主键搜索,然后排序

PHP:上传的文件不移动到文件夹(关闭)

mysql - 如何优化这个执行插入数据库的脚本?

MySQL @local_variable 不能连续工作

PHP Mysql 从函数将数据插入数据库

php - 使用 cakephp 检查表中是否有条目

php - 我的sql代码有什么问题