我有一张这样的桌子。我想通过选择“misc”列中“20”的“level_id”来检索product_id。任何想法的人在mySQL中如何做到这一点?
product_id misc
---------- ------
1 {"level_id":20,"group_id":"2132","product_name":"bg","category_id":6}
2 {"level_id":20,"group_id":"2132","product_name":"bg","category_id":6}
3 {"level_id":25,"group_id":"2132","product_name":"bg","category_id":6}
4 {"level_id":28,"group_id":"2132","product_name":"bg","category_id":6}
5 {"level_id":28,"group_id":"2132","product_name":"bg","category_id":6}
6 {"level_id":20,"group_id":"2132","product_name":"bg","category_id":6}
请帮帮我... 实际上它是一个json数组。
答案 0 :(得分:1)
您可以在mysql查询中使用正则表达式来获取level_id = 20的记录。未经测试。请检查。
select * from table_name where misc REGEXP '(.*\"level_id\":\"20\".*)'
答案 1 :(得分:1)
如果我理解你纠正了你在MySQL中存储了JSON。 MySQL目前没有原生的JSON支持(对于生产而言)(见这里:https://dba.stackexchange.com/questions/50382/do-sql-server-or-mysql-contain-json-supporting-functions)。 你的任务是编写自己的JSON解析器,或者你应该在MySQL(PHP,Java等)之外执行此操作,或者你必须保存不同的数据。