当重复另一个值时从列获取值

时间:2013-02-18 20:26:14

标签: php sql

我真的是新手,而且我一直试图从查询中获得结果而没有得到它。我相信对于有经验的用户来说这很容易,但我肯定在搜索之后提出了一个问题而没有为我找到足够解释的答案或示例。

我有一张这样的表:

a  |  b
----------
2  | 76
----------
3  | 79
----------
3  | 84
----------
4  | 16
----------

如果'a'列中的任何数字重复,我想在php中'回显'来自'b'列的数字。例如,在这种情况下,我应该得到结果:'79,84'(因为'a'列中唯一重复的数字是'3')

我尝试过:

$query=  mysql_query( "select b from table where a=3" );
$row = mysql_fetch_array($query);
$value = $row['b'];

$j = min($row);
$k = max($row);
while ($j <= $k) {
echo $j;
echo $k;
echo $value;
$j++;
}

但它不起作用。有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:2)

如果您想要表中所有数据的结果,请使用此选项:

SELECT a, GROUP_CONCAT( b ) values
FROM table
GROUP BY a
HAVING count(*) > 1

这会将table中的数据按列a的值进行分组,HAVING会将结果仅过滤到包含多个成员的组,GRPOUP_CONCAT将转换所有值组中的b为单值(默认情况下以逗号分隔)。

GROUP_CONCAT documentation