Я пытался создать программу, которая будет читать из моей базы данных все столбцы и если эти столбцы имеют одинаковый возраст, появляются более одного раза (например, если две строки имеют одинаковый возраст 15, эти два строки должны быть показаны и т.д.)HAVING не показывает все результаты
Это код, который я пытался сделать:
include('dbcon_3.php');
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
$sql = "SELECT * FROM table2 GROUP BY Age HAVING (COUNT(Age) > 1)";
$result = $mysqli->query($sql);
if ($result->num_rows > 0) {
while ($row = $result->fetch_row()) {
for ($j = 0; $j <= count($row) - 1; $j++) {
echo $row[$j];
}
}
} else if ($result->num_rows == 0) {
echo "Not found";
}
в результате из этого кода является лишь один из строк, которые должны быть появились (я тестировал на три ряда, один имел возраст 16 лет и два в возрасте 15 лет. Из последних двух только один появился на экране).
Заранее спасибо.
удалить группу с помощью и попробовать –
Сначала немного SQL-ошибка в запросе .. вы не можете использовать * in (Select * ... Group By) с условием Group by ... ie Вам нужно указать конкретные столбцы в Select Statement при использовании Group By Clause ... example (Выбрать A, B, C From TableName Group By A, B, C) –
@Fayeq К сожалению, некоторые механизмы БД позволяют это (я думаю, что MySQL делает), в то время как другие (особенно Oracle). –