@alekskondr
php, javascript, yii2, drupal, MQL

Почему SELECT DISTINCT не выводит уникальные строки?

<?php
$q = "SELECT DISTINCT * FROM tablename ";
    $r = @mysqli_query ($link, $q);

    $results_array = array();
    while($row = mysqli_fetch_assoc($r)) {
        array_push($results_array, $row);}
?>
                    <tbody>
                            <tr>
                              <?php foreach($results_array as $key => $value){ ?>

                                <td><?php echo $value['id']; ?></td>
                                <td><?php echo $value['name']; ?></td>
                                 <td><?php echo $value['surname']; ?></td>
                            </tr>
<?php } ?>


Просмотерл несоколько вариантов, не помогло!
если выводить только <?php echo $value['name']; ?> то вроде выводит уникальные строки
  • Вопрос задан
  • 524 просмотра
Пригласить эксперта
Ответы на вопрос 3
@Tem_ka
Разве в данном случае DISTINCT работает не по всем полям? Конечно результатом будут все строки т.к. все строки как минимум различаются id (который уникален)
Ответ написан
Комментировать
@d-stream
Готовые решения - не подаю, но...
distinct - "просит" вывести уникальное
указав * - выводим все колонки и как правило они все уникальны...

если же хочется уникальности по некоей комбинации полей, то и надо их явно указать вместо *

например select distinct name, surname ...
тогда будут выведены уникальные пары name, surname
Ответ написан
Комментировать
usdglander
@usdglander
Yipee-ki-yay
SELECT DISTINCT(`name`) FROM tablename
ну или в вашем случае
SELECT * FROM tablename GROUP BY `name`
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы