我有一个这样的表。我想通过从"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数组。
您可以在mysql查询中使用正则表达式来获取level_id=20的记录。未经测试。请检查。
select * from table_name where misc REGEXP '(.*'"level_id'":'"20'".*)'
如果我理解您的更正,您将JSON存储在MySQL中。MySQL目前没有本地JSON支持(对于生产)(请参阅此处:https://dba.stackexchange.com/questions/50382/do-sql-server-or-mysql-contain-json-supporting-functions)。要么你的任务是编写自己的JSON解析器,要么你应该在MySQL(PHP、Java等)之外完成这项工作,要么你必须保存不同的数据。