国际化表的一点建议
数据量较大业务表不建议采用此种方式
mysql版本5.7.28
-- 新建表
INSERT INTO `test` (`name`) VALUES ('{"cn":"疼样","en":"Teng yang","other":"*……&¥#87"}');
-- 查询中英文
SELECT json_extract(`name`,'$.en') AS `name` FROM `test`;
SELECT json_extract(`name`,'$.cn') AS `name` FROM `test`;
-- 查询中英文
SELECT `name` -> '$.cn' AS `name` FROM `test`;
SELECT * FROM test WHERE `name` -> '$.cn' LIKE '%疼样%';
-- 更新
UPDATE `test` SET `name`=json_set(`name`,'$.en','Ty');
UPDATE `test` SET `name`='{"cn":"滕洋","en":"TY","other":"no"}';
-- JSON数组查询
SELECT JSON_EXTRACT(name ,'$[0]') FROM test;
SELECT JSON_EXTRACT(name ,'$[0].cn') FROM test;
SELECT name -> '$[0].cn' FROM test;
-- 去 引号
SELECT name ->> '$[0].cn' AS roomName FROM test;
SELECT JSON_UNQUOTE(name -> '$[0].cn') FROM test;