Зачислить в студенты пять человек с наивысшим средним баллом - MySQL

Узнай цену своей работы

Формулировка задачи:

Всем добрый день! Помогите, пожалуйста, написать правильный запрос в MySQL. Задача следующая - есть база абитуриентов. Нужно из всей этой базы зачислить в студенты пять человек с наивысшим средним баллом. Для этого надо в колонку isEnter вписать значение 1 вместо 0. Я смог написать вот такой правильно работающий запрос - он выводит 5 лучших абитуриентов (колонка GPA - это средний балл).
Листинг программы
  1. SELECT * FROM university.abiturients ORDER BY GPA DESC LIMIT 5;
Проблема в том, что я теперь не знаю, как в колонку isEnter вписать значение 1 вместо 0. Я долго гуглил, но всё что смог, это написать вот такие два неработающих запроса:
Листинг программы
  1. UPDATE abiturients SET `IsInSheet`=1 WHERE
  2. (SELECT * FROM university.abiturients ORDER BY GPA DESC LIMIT 5);
Листинг программы
  1. UPDATE university.abiturients SET `isEnter`=1
  2. WHERE GPA = (SELECT GPA FROM university.abiturients ORDER BY GPA DESC LIMIT 5);
Помогите, пожалуйста!!! Заранее благодарю!

Решение задачи: «Зачислить в студенты пять человек с наивысшим средним баллом»

textual
Листинг программы
  1. // получаем id абитуриентов в наивысшим средним баллом
  2. $sql_select = "SELECT id FROM university.abiturients ORDER BY GPA DESC LIMIT 5";
  3. $result = $mysqli->query($sql_select);
  4. // составляем массив с id абитуриентов
  5. $arr_id = array();
  6. while ($obj = $result->fetch_object()) {
  7.         $arr_id[] = $obj->id;
  8. }
  9. // превращаем массив в строку типа "4,7,3,6,13"
  10. $ids = implode(",", $arr_id);
  11. // превращаем в студентов тех, у кого id in (4,7,3,6,13);
  12. $sql_update = "UPDATE university.abiturients SET `IsInSheet`=1 WHERE id in ($ids)";
  13. $mysqli->query($sql_update);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы