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