Зачислить в студенты пять человек с наивысшим средним баллом - 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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д