使用
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除了返回最终的组合替换之外,还将返回所有中间替换;我不确定如何过滤掉这些替换。