Mysql/Php查询分组过滤结果


Mysql/Php query grouping filter result

真的很难找到编写以下代码的最佳方法。我的查询将生成以下结果:

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",
  "answerswer": 7,
  "answerswer1": 8
}, 
// everything here will be answers for OPTIONvalue = 24
[{
  "name": "person_name",
  "answerswer": 1,
}, 

目前,我查询数据库以获得所有选项值,然后循环这些结果,这样我就可以在mysqlselect中执行OPTIONvalue=23的操作。这是查询数据库大约15次…这显然是一个糟糕的想法,但我不知道该怎么做才能更好地编码它。

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

您可以尝试

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

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