2017-05-17 42 views
-1

有没有一种方法可以通过JSON数组中的值的索引进行搜索。例如有这样一种方法做类似...在MYSQL中获取JSON数组中的值索引?

Select * FROM table WHERE myJSONArr.indexOf("s") = 3 or 4 

,使得其将返回所有行,其中“S”的一个JSON列“myJSONArr”的指数是3或4?

+1

如果您提供一些更多详细信息,您可能会得到更多帮助。一些例子json和预期的结果。 –

+0

你把JSON文档放在SQL数据库中,它打败了数据库的特性(索引和查询)并且不节省空间。如果你需要更多的灵活性,也许你应该考虑像MongoDB这样的NoSQL数据库。 –

+0

@NyamiouTheGaleanthrope MySQL有一个json数据类型和函数来支持它,在MySQL中我没有看到任何使用JSON的问题。特别是如果他们需要混合关系/非关系解决方案。 –

回答

0

这可能对你有帮助!

CREATE TABLE test_json_table (
id integer , 
tags json DEFAULT NULL, 
PRIMARY KEY (id) 
); 

insert into test_json_table VALUES (1, '["JavaScript", "ES2015", "JSON"]'); 
insert into test_json_table VALUES (2, '["JavaScript", "Python", "ES2015", "JSON"]'); 


select v1.* 
from (select cast(tags as char) as tags_str from test_json_table) as v1 
where POSITION("[" IN v1.tags_str) IN (1,2) ;