小编Arn*_*aga的帖子

为什么带有 LIKE% 或 %LIKE 的 JSON_EXTRACT 通配符在 MySQL 数据库中不起作用?

我需要使用 JSON 数据在 MYSQL 表中搜索数据。使用JSON_EXTRACT(@json, "$.link") LIKE '%http%'效果符合预期。但LIKE 'http%' or '%http'不!

这是否意味着 JSON_EXTRACT 不能与单通配符选择匹配一起使用?

例子:

这是我的 JSON

set @json = '{"link": "https://www.google.com"}' ; 
Run Code Online (Sandbox Code Playgroud)
select JSON_EXTRACT(@json, "$.link") like '%com'; 
-- returns 0

select JSON_EXTRACT(@json, "$.link") like 'http%' ; 
-- returns 0

select JSON_EXTRACT(@json, "$.link") like '%google%' ; 
select JSON_EXTRACT(@json, "$.link") like '%http%' ; 
select JSON_EXTRACT(@json, "$.link") like '%com%' ; 
-- returns 1 !
Run Code Online (Sandbox Code Playgroud)

这是小提琴中的一个示例:https ://www.db-fiddle.com/f/7yPvfa2UZsZLdYSxdsnecx/0

mysql json mysql-5.7 json-extract

2
推荐指数
1
解决办法
5512
查看次数

标签 统计

json ×1

json-extract ×1

mysql ×1

mysql-5.7 ×1