Php 选择所有列数据,但在列上不相同

Php 选择所有列数据,但在列上不相同,php,mysql,Php,Mysql,我希望使用独特的查询获取所有列数据根据您想要的输出,尝试以下任何选项: SELECT * DISTINCT `contact_id` FROM `survey_response_single` WHERE text_id = '1' LIMIT 0, 15 SELECT DISTINCT `contact_id` FROM `survey_response_single` WHERE text_id = '1' LIMIT 0, 15 或者,如果只需要单个列的

我希望使用独特的查询获取所有列数据

根据您想要的输出,尝试以下任何选项:

SELECT * DISTINCT `contact_id`  
 FROM `survey_response_single`  
  WHERE text_id = '1' LIMIT 0, 15 
SELECT DISTINCT `contact_id`  
 FROM `survey_response_single`  
  WHERE text_id = '1' LIMIT 0, 15 
或者,如果只需要单个列的不同值:

SELECT DISTINCT contact_id, text_id, details  -- take your column names
FROM survey_response_single  
WHERE text_id = '1' LIMIT 0, 15 
随和:

SELECT DISTINCT contact_id
FROM survey_response_single  
WHERE text_id = '1' LIMIT 0, 15 
许多人不知道的是:“*”不一定是SELECT中的唯一语句。您可以轻松地用逗号分隔它,并获取更多列

在目标列上调用DISTINCT,并使用star获取所有其他列

唯一的副作用是结果表将包含两个内容相同的contact_id列。但是,在使用PHP获取数组时,不需要担心别名,这两种方法都可以


如果您想要一个没有重复数据的查询,您别无选择,只能自己列出表中的所有列,而不是使用*

首先,看起来他想要访问所有列。因此,在使用DISTINCT时,必须指定所有列,但不能使用*

SELECT DISTINCT `contact_id`, *
FROM `survey_response_single`
WHERE `text_id` = '1' LIMIT 0, 15
但是如果我们使用分组,这个问题就可以解决了。在GROUP BY中,您将只获得联系人id的不同值,因为相似的值将被分组。此外,现在我们可以使用*

$query=mysql_query("SELECT DISTINCT `contact_id`,column1,
column2 FROM `survey_response_single`
WHERE text_id = '1' LIMIT 0, 15  "); //You select here the required data 
//of column1,2... and having distinct contact_id values
$execute_query=mysql_query($query,$db_conn);
while($row=mysql_fetch_array($execute_query){
  //use you data
}
星*不是必需的

SELECT * FROM `survey_response_single`  
WHERE text_id = '1' 
GROUP BY `contact_id`

删除*符号

您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解要使用的正确语法,例如“*FROM survey\u response\u single,其中text\u id='1'限制0,15'在第1行,请为您的代码添加一些解释,这将有助于其他人快速理解。我认为这是非常自我解释的,但很好,我修复了它。列如何依赖于分组方式。首先,看起来他想要访问所有列。因此,在使用DISTINCT时,必须指定所有列,但您不能使用*因此,如果使用GROUP BY,这个问题将得到解决,因为在GROUP BY中,您将只获得contact_id的不同值,因为类似的值将被分组。此外,现在我们可以使用*访问所有列。因此,如果按联系人id分组,则只能在选择列列表中使用该和聚合函数。你不能有*。试试吧,伙计,我们也可以使用聚合函数,但这不是必须的。此外,我们同时得到不同的值,并且可以同时使用*。他说他想获取所有列,然后他需要*或者需要手动列出表中的所有列。在这种情况下,星星更容易。。。
SELECT  DISTINCT `contact_id`  
 FROM `survey_response_single`  
  WHERE text_id = '1' LIMIT 0, 15