选择列上的所有列数据但不同

时间:2014-09-23 05:59:01

标签: php mysql

SELECT * DISTINCT `contact_id`  
 FROM `survey_response_single`  
  WHERE text_id = '1' LIMIT 0, 15 

我想使用不同的查询

获取所有列数据

6 个答案:

答案 0 :(得分:1)

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

但是如果我们使用GROUP BY,这个问题就可以解决了。与GROUP BY一样,您将只获得contact_id的不同值,因为类似的值将被分组。此外,现在我们可以使用*

访问所有列
SELECT * FROM `survey_response_single`  
WHERE text_id = '1' 
GROUP BY `contact_id`

答案 1 :(得分:0)

尝试以下任何一项取决于您想要的输出:

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

http://sqlfiddle.com/#!2/3d502/4

或者这个(如果你只想要单个列的不同值):

SELECT DISTINCT contact_id
FROM survey_response_single  
WHERE text_id = '1' LIMIT 0, 15 

http://sqlfiddle.com/#!2/3d502/6

答案 2 :(得分:0)

轻松:

SELECT DISTINCT `contact_id`, *
FROM `survey_response_single`
WHERE `text_id` = '1' LIMIT 0, 15

许多人都不知道:'*'不一定是SELECT中的唯一语句。您可以通过逗号轻松分隔它并获取更多列。

您在目标列上调用DISTINCT,并使用星号获取所有其他列。

唯一的副作用是您的结果表将包含两个内容相同的“contact_id”列。但是,当你使用PHP获取数组时,你不必担心别名,这将是两种方式。

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

答案 3 :(得分:0)

$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
}

答案 4 :(得分:-1)

SELECT DISTINCT `contact_id`  
 FROM `survey_response_single`  
  WHERE text_id = '1' LIMIT 0, 15 

答案 5 :(得分:-1)

星号(*)不需要

SELECT  DISTINCT `contact_id`  
 FROM `survey_response_single`  
  WHERE text_id = '1' LIMIT 0, 15 

删除*符号