SELECT * DISTINCT `contact_id`
FROM `survey_response_single`
WHERE text_id = '1' LIMIT 0, 15
我想使用不同的查询
获取所有列数据答案 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
答案 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
删除*符号