社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

mysql-用子查询中的关键字/值替换文本

SequenceDigitale.com • 5 年前 • 1300 次点击  

我有一个带文本字段的表1。 此字段包含一段文本 在内容中,我放了一些占位符,比如“[[总统]]”

我有一个表2有两个字段:键和值。 关键是“[[总统]”,价值是“亚伯拉罕·林肯”

如何在单个查询中写入,使表1的结果成为由表2的值替换的占位符?

谢谢

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/40983
 
1300 次点击  
文章 [ 2 ]  |  最新文章 5 年前
姜海龙
Reply   •   1 楼
姜海龙    6 年前

你可以这样用 选择主席为

Barmar
Reply   •   2 楼
Barmar    6 年前

使用 REPLACE() 连接两个表后的函数。

SELECT REPLACE(t1.textfield, t2.key, t2.value) AS new_textfield
FROM Table1 AS t1
JOIN Table2 AS t2 ON LOCATE(t1.textfield, t2.key) != 0

请注意,一次只能对一个占位符起作用。如果一个文本字段包含多个占位符,则每次替换都会得到不同的结果行,它们不会合并。

我想你可以用 recursive CTE ,但cte只在mysql 8.0中才可用,我对它们并不熟悉。据我所知,递归CTE除了返回最终的组合替换之外,还将返回所有中间替换;我不确定如何过滤掉这些替换。