Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL查询选择多行_Mysql_Select_Group Concat - Fatal编程技术网

MySQL查询选择多行

MySQL查询选择多行,mysql,select,group-concat,Mysql,Select,Group Concat,我有下表: surveys comp_id question 4 What is your name? 4 How are you? 4 Where do you live? 5 Who are you? 5 What is your birthday? 我需要帮助编写一个查询,该查询提供以下输出: comp_id my_questions 4 What is your na

我有下表:

surveys
comp_id    question
4          What is your name?
4          How are you?
4          Where do you live?
5          Who are you?
5          What is your birthday?
我需要帮助编写一个查询,该查询提供以下输出:

comp_id    my_questions
4          What is your name?How are you?Where do you live?
5          Who are you?What is your birthday?

谢谢,

您正在寻找
GROUP\u CONCAT()
函数。像这样使用它:

SELECT comp_id, GROUP_CONCAT([DISTINCT] question [ORDER BY some_field ASC/DESC] [SEPARATOR '']) as my_questions
FROM surveys
GROUP BY comp_id

注意:我在
[]
中显示了一些要传递到组中的可选值。要获得与您所展示的完全相同的效果,只需使用
组\u CONCAT(问题分隔符“”)
。可选项允许您查找不同的问题值,或按任何字段(包括问题本身)对其排序。

。但是,为什么要这样“销毁”文本?SQL中是否有一个分组函数可以这样做?@jamis0n
group\u concat
正是他所需要的@马克B:什么意思?太棒了!学到了一些新东西!感谢mate提供的分隔符:)我正在执行以下查询,但它似乎不起作用:“选择GROUP_CONCAT(问题)作为调查中的问题,其中问题代码=1和问题代码=2”在某些字段上需要一个
GROUP BY
子句。事实上,我很惊讶这并没有产生MySQL错误,因为大多数聚合函数在没有
GROUP BY
的情况下都会产生MySQL错误。因此,如果我在没有选择comp_id的情况下放置“GROUP BY comp_id”,它会起作用吗?这是因为您没有选择任何记录。记录如何具有
question\u code=1
question\u code=2
。一条记录可以有一个值或另一个值,而不是两个值。您可能需要使用
WHERE question\u code IN(1,2)
WHERE question\u code=1或question\u code=2
。第一种可能是更好的用于动态查询的代码,在动态查询中,您正在筛选的
question\u code
的值的数量可能会有所不同。