0

更新:

以下是我的查询:

   $questionquery = "
SELECT q.QuestionId, q.QuestionContent, o.OptionType, q.NoofAnswers, GROUP_CONCAT(an.Answer ORDER BY an.Answer SEPARATOR ' ') AS Answer, r.ReplyType, 
       q.QuestionMarks 
  FROM Answer an 
  INNER JOIN Question q ON q.AnswerId = an.AnswerId
  JOIN Reply r ON q.ReplyId = r.ReplyId 
  JOIN Option_Table o ON q.OptionId = o.OptionId 
      WHERE ".implode(" AND ", array_fill(0, $numTerms, "q.QuestionContent LIKE ?"))."
      GROUP BY q.QuestionId, q.SessionId, q.QuestionContent, o.OptionType, q.NoofAnswers, Answer, r.ReplyType, q.QuestionMarks
      ORDER BY ".implode(", ", array_fill(0, $numTerms, "IF(q.QuestionContent LIKE ?, 1, 0) DESC"))."
    ";

上述查询将提供对字符串的搜索,并在“问题”列下输出包含该字符串的行。

我有一个您可以在我的应用程序上访问的URL,请按照以下步骤使用该应用程序:

  • 步骤 1:当您打开应用程序时,您会在页面上看到一个绿色的加号按钮,单击它会显示一个模态窗口。
  • 第2步:在模态窗口有一个搜索栏,输入“AAA”并提交搜索,你会看到一堆行出现。

现在,您可以看到,如果您仔细阅读,有些行是完全重复的,例如每列中的内容完全相同(相同的问题、答案、标记、回复数等)

这就是我想要摆脱的。我不希望它显示重复的行,而只是显示其中一个行,这样它就不会输出重复的行。我需要改变什么?

4

3 回答 3

1

编辑:根据您的问题的更改


根据您的示例数据,它只是这个..

SELECT
  `Question`,
  `Answer`,
  `Number of Marks`
FROM
  yourQuery
GROUP BY
  `Question`,
  `Answer`,
  `Number of Marks`

但这让我怀疑还有什么你没有告诉我们的?

于 2012-07-12T17:05:32.870 回答
0

为了不显示重复的行,除非我遗漏了什么,您只需要添加 DISTINCT 子句,如下所示:

$questionquery = "
SELECT DISTINCT q.QuestionId, q.QuestionContent, o.OptionType, q.NoofAnswers,
    GROUP_CONCAT(an.Answer ORDER BY an.Answer SEPARATOR ' ') AS Answer, r.ReplyType, 
    q.QuestionMarks 
FROM Answer an 
INNER JOIN Question q ON q.AnswerId = an.AnswerId
JOIN Reply r ON q.ReplyId = r.ReplyId 
JOIN Option_Table o ON q.OptionId = o.OptionId 
WHERE ".implode(" AND ", array_fill(0, $numTerms, "q.QuestionContent LIKE ?"))."
GROUP BY q.QuestionId, q.SessionId, q.QuestionContent, o.OptionType, q.NoofAnswers, Answer, r.ReplyType, q.QuestionMarks
ORDER BY ".implode(", ", array_fill(0, $numTerms, "IF(q.QuestionContent LIKE ?, 1, 0) DESC"))."
";
于 2012-07-12T18:02:05.697 回答
0

按 q.SessionId 和 Answer 分组的任何特殊原因?如果您按未选择的字段 (q.SessionID) 分组并且按 Answer 分组听起来是错误的,因为它是聚合函数的结果,我希望您的结果集中会有重复的行。

于 2012-07-12T18:14:29.460 回答