Я знаю, что, вероятно, я веду это слишком не по теме, но поскольку поисковый ответ от Google уже несколько раз направлял меня сюда, я хотел бы поделиться своим решением для немного более сложной аналогичной проблемы.
Решение GROUP_CONCAT(DISTINCT ...)
, как указал gbn, великолепно, пока у вас действительно не будет несколько равных или почти равных значений, таких как á и a.
Я исключил ключевое слово из запроса и решил проблему с PHP. Если вам нужно только отличить á от a, простое 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
)
person
ruuter
schedule
15.02.2015