Зачислить в студенты пять человек с наивысшим средним баллом - MySQL
Формулировка задачи:
Всем добрый день!
Помогите, пожалуйста, написать правильный запрос в MySQL. Задача следующая - есть база абитуриентов. Нужно из всей этой базы зачислить в студенты пять человек с наивысшим средним баллом. Для этого надо в колонку isEnter вписать значение 1 вместо 0.
Я смог написать вот такой правильно работающий запрос - он выводит 5 лучших абитуриентов (колонка GPA - это средний балл).
Проблема в том, что я теперь не знаю, как в колонку isEnter вписать значение 1 вместо 0.
Я долго гуглил, но всё что смог, это написать вот такие два неработающих запроса:
Помогите, пожалуйста!!!
Заранее благодарю!
SELECT * FROM university.abiturients ORDER BY GPA DESC LIMIT 5;
UPDATE abiturients SET `IsInSheet`=1 WHERE (SELECT * FROM university.abiturients ORDER BY GPA DESC LIMIT 5);
UPDATE university.abiturients SET `isEnter`=1 WHERE GPA = (SELECT GPA FROM university.abiturients ORDER BY GPA DESC LIMIT 5);
Решение задачи: «Зачислить в студенты пять человек с наивысшим средним баллом»
textual
Листинг программы
// получаем id абитуриентов в наивысшим средним баллом
$sql_select = "SELECT id FROM university.abiturients ORDER BY GPA DESC LIMIT 5";
$result = $mysqli->query($sql_select);
// составляем массив с id абитуриентов
$arr_id = array();
while ($obj = $result->fetch_object()) {
$arr_id[] = $obj->id;
}
// превращаем массив в строку типа "4,7,3,6,13"
$ids = implode(",", $arr_id);
// превращаем в студентов тех, у кого id in (4,7,3,6,13);
$sql_update = "UPDATE university.abiturients SET `IsInSheet`=1 WHERE id in ($ids)";
$mysqli->query($sql_update);