【发布时间】:2019-12-26 09:03:54
【问题描述】:
我有一个 MySQL 数据库表,即ds_message,它包含模板和 JSON 对象。我想用 JSON 键找到模板字符串中存在的键,并用 JSON 值替换键。
表:
_____________________________________________________________________________________
id template key_value
_____________________________________________________________________________________
1 'Dear {a}, the price of {b} is {c}' '{"a":"John", "b":"bat", "c":"$10"}'
2 'Dear {i}, you selected the product {j}' '{"i":"Emma", "j":"Jam"}'
我需要 SQL Select 语句来获取字符串 Dear John, the price of bat is $10,并且每个模板都有 N 个键,它在整个表中并不相同。
表结构:
CREATE TABLE `ds_message` (
`id` int NOT NULL,
`template` varchar(500) NOT NULL,
`key_value` varchar(500) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='';
ALTER TABLE `ds_message`
ADD PRIMARY KEY (`id`);
INSERT INTO `ds_message` (`id`, `template`, `key_value`) VALUES
(1, 'Dear {a}, the price of {b} is {c}', '{"a":"John", "b":"bat", "c":"$10"}');
INSERT INTO `ds_message` (`id`, `template`, `key_value`) VALUES
(2, 'Dear {i}, you selected the product {j}', '{"i":"Emma", "j":"Jam"}');
预期结果:
- 亲爱的约翰,蝙蝠的价格是 10 美元
- 亲爱的 Emma,您选择了 Jam 产品
请在 SELECT 语句或存储过程中帮助我。
【问题讨论】:
-
你用的是什么版本的 MySQL?
-
@TimBiegeleisen - MySQL 5.7 和 8
标签: mysql json replace key-value mysql-json