Mysql / Php查询分组过滤结果

时间:2015-02-10 14:28:33

标签: php mysql

真正努力找出编码以下代码的最佳方法。我的查询将生成以下结果:

ID      OPTIONvalue     ANSWER
57      23              7
58      23              8
59      24              1
60      25              5

我的目标是生成类似这样的JSON,我需要

// everything here will be answers for OPTIONvalue = 23
[{
  "name": "person_name",
  "answer": 7,
  "answer1": 8
}, 

// everything here will be answers for OPTIONvalue = 24
[{
  "name": "person_name",
  "answer": 1,
}, 

目前,我查询数据库以获取所有选项值,然后循环这些结果,这样我就可以在mysql select中选择OPTIONvalue = 23。这是查询数据库大约15次......这显然是一个可怕的想法,但我无法弄清楚我应该做些什么来更好地编码。

我试图简化我的要求,希望你能理解,如果不让我知道,我可以编辑上面的内容。

1 个答案:

答案 0 :(得分:0)

您可以尝试

SELECT OptionValue,
       GROUP_CONCAT(Answer ORDER BY Answer) Answers
  FROM Table
 GROUP BY OptionValue

这将为每个OptionValue产生一行,并以逗号分隔的Answer值列表。将它转换为JSON应该很简单。