使用mysql json\u search函数使用不区分大小写的搜索获取json数据中的值的路径表达式

mccptt67  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(363)

我有一个需求,在这里我需要从json数据中提取json路径表达式,并按值进行搜索。
例如,如果我将json数据存储为

SET @j = '[{"name":"Kiran Muralee", "age" : 30 , "Salary" : 30000},
      {"Name":"Arun Babu", "age" : 35 , "Salary" : 60000}]';

如果我需要得到值为'arun babu'的json路径,我可以使用

SELECT JSON_SEARCH(@j, 'all', 'Arun Babu');

这会导致

"$[1].Name"

这是正确的,但问题是如果我搜索值'arun babu',它会返回null。所以我用了一个不区分大小写的搜索

SELECT JSON_SEARCH(lower(@j), 'all', lower('arun babu'));

所以现在我得到的结果是

"$[1].name"

但这不是我需要的,因为现在输出的结果也是小写的,我需要的结果是
“$[1].name”任何人都能提出一个好的解决方案或方法。
mysql版本使用is 5.7(支持json类型的版本)

mznpcxlj

mznpcxlj1#

我们可以使用不区分大小写的排序规则来获得预期的解决方案:

SELECT JSON_SEARCH(@j , 'all', 'arun babu' COLLATE utf8mb4_general_ci);

小提琴

相关问题