如何在MySQL中找到JSON?[复制]

How to find JSON in MySQL? [duplicate]

提问人:Taras PHP 提问时间:9/22/2023 最后编辑:ADysonTaras PHP 更新时间:9/22/2023 访问量:40

问:

如何在MySQL的JSON数组中找到值?我正在尝试此选项

https://sqlize.online/sql/mysql80/df842fcbe7d246262b65740c80668c4e/

create table tbl (id int, home json);

insert into tbl values 
(1, '[
    "1",
    "2",
    "3"
]');

select * 
from tbl
where json_contains(home, '1');

但没有结果。

sql mysql json

评论

0赞 Procrastinator 9/22/2023
您在 1 周围缺少双引号 (“”)。这应该有效:select * from tbl where json_contains(home, '“1”');

答:

1赞 SelVazi 9/22/2023 #1

您可以使用以下方法进行操作:JSON_CONTAINS

select * 
from tbl
where JSON_CONTAINS(home, '"1"', '$');

PS:“1”是一个字符串,所以你必须使用双引号。

这是使用JSON_SEARCH执行此操作的另一种方法:

select *
from tbl 
where JSON_SEARCH(home, 'one', "1") is not null

评论

0赞 SelVazi 9/22/2023
很高兴听到我能帮:)
0赞 Taras PHP 9/25/2023
请告诉我更多,由于某种原因,它无法通过mysqli_query在PHP中使用。
0赞 Taras PHP 9/25/2023
错误: $result = $mysqli->query('SELECT * from products where JSON_SEARCH(json, “one”, “361”)');
1赞 SelVazi 9/25/2023
您将需要转义双引号