文档地址JSON_EXTRACT - MariaDB Knowledge Base
//创建临时表
create temporary table if not EXISTS testab(
namm VARCHAR(200)
);
//插入数据
INSERT into testab values('{"name":"1234"}');
INSERT into testab values('[{"name":"1234"},{"name":"12345"},{"name":"1238"}]');
//查询全部数据
select * from testab;
//查询JSON数据
select * from testab where JSON_EXTRACT(namm,'$.name')="123";
使用JSON_UNQUOTE这个函数可以将返回值变成不包含""号的值
select JSON_UNQUOTE(JSON_EXTRACT(namm,'$.name')) as test1 from testab ;
查询数组使用
select * from testab where JSON_EXTRACT(namm,'$[*].name')="123";
pc:*号必须是数字 例如数组下标 0,1,2,3,4
JSON_CONTAINS 判断json数组字符串匹配规则
SELECT
*
FROM
a sce
INNER JOIN b die
WHERE
JSON_CONTAINS( sce.auuid, JSON_QUOTE( die.uuid ) )
其中sce.auuid 为一个json数组字符串,json_quote为将die.uuid的值改为携带双引号的字符串,json_contains为将sce.auuid中的json内容去匹配die.uuid,得到最终结果
官网:官方文档说明