2016-06-15 47 views
4

我有一个“测试”表PK字段“id”和JSON字段“json_data”。我提出以下插入:使用mysql JSON_SEARCH:为什么我必须引用数字?

insert into test (json_data) values (JSON_ARRAY(1,2)); 

但是,如果我这样做

select * from test where JSON_SEARCH(json_data, 'all', 2) is not null; 

我得到 “空集”。虽然如果我插入

insert into test (json_data) values (JSON_ARRAY("1","2")); 

,然后重复查询,我确实终于得到

+----+------------+ 
| id | json_data | 
+----+------------+ 
| 2 | ["1", "2"] | 
+----+------------+ 

为什么我以引用的数字是能够对他们的查询?我宁愿不这样做,是否有办法解决?

回答

0

JSON_SEARCH只能用于字符串,根据MySQL文档。

试试这个:

SET @j = '[3, 2, 1]'; 
SELECT JSON_CONTAINS(@j, '3', '$'); 
相关问题