关于mysql:20211218MySQL的json查询之jsoncontainsjsoncontainspath

6次阅读

共计 775 个字符,预计需要花费 2 分钟才能阅读完成。

我集体之所有应用 MySQL 的这个 json 个性,最大的起因就是 json_contains 这个用法,咱们只关注前俩个参数,这个就像咱们说的“海底捞针”,第一个参数是“大海”,第二个参数是“针”,就是判断“大海”外面是否有“针”。

数据表

例一

select * from member where json_contains(info, '4');

特地留神,如果参数不是数据库中的字段的话,肯定要加引号,就算是整型也得加

例二

select * from member where json_contains(json_array(1,2,3,4,5,6,7), info);

例三

select * from member where json_contains(json_array(21,31,41,51), json_array(age));

这种用法的后果和 in 是一样的,也跟后面咱们讲 json_array 一样,区别在于一个是数据库自身就是 array,另外一个是咱们本人创立

json_contains_path

这个函数用来判断是否有键名的,我的认识是这个函数根本用不到,数据库后果根本都是提前设计好的,不须要判断。第一个参数判断的指标,第二个参数是 one 或者all,第三个参数指定的键名,当前的参数都是键名,如果第二个参数是 one,则其中一个键名存在则返回正确;如果第二个参数是 all,则所有键名都存在才返回正确。

例一

select * from member where json_contains_path(info, 'one', '$[0]');

例二

select * from member where json_contains_path(info, 'one', '$[3]');

例三

select * from member where json_contains_path(info, 'one', '$.a');

留言

点击留言

正文完
 0