根据列的数组中的单个元素检索id

时间:2013-12-11 10:51:46

标签: php mysql sql

我有一张这样的桌子。我想通过选择“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数组。

2 个答案:

答案 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等)之外执行此操作,或者你必须保存不同的数据。