我知道我可能推动这个有点太题外话,但因为从谷歌搜索答案已经在这里执导了我好几遍了,我想和大家分享我的解决方案,对于稍微复杂一点类似的问题。
作为gbn指出的GROUP_CONCAT(DISTINCT ...)
解决方案很好,直到您实际上有多个相等的值或几乎相等,如和。
我忽略了查询中的distinct关键字并解决了PHP的问题。如果你只需要区分á和简单的array_unique
就可以做到。
不幸的是,我并不那么幸运,我也有我需要保持的完全相同的值。考虑group_concat
领域展开从数据库查询返回的样本值到数组:
$values = array('Value1','Value1','Value2','Value2','Value2','Value2');
现在不知怎么区分有多少重复你处理。我做了以下内容:
$x=0;
$first = reset($values);
while($first === $values[$x]) $x++;
上述方案仅适用,如果你的实际的第一和第二个值是永远不会相同,这在我的情况是真实的。如果情况并非如此,请找出其他方法来了解您处理的重复数量。 取模的帮助下终于正好被清除所有多余的值:
foreach($values as $k => $v){
if($k%$x !== 0) unset($values[$k]);
}
完蛋了。打印$值现在会给你:
Array
(
[0] => Value1
[2] => Value2
[4] => Value2
)
你可以添加你的查询吗? – Java 2012-03-07 14:21:38