Вывести запись столько раз, сколько требуется - MySQL

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

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

Приветствую! Допустим, есть таблица:

ID

TITLE

1 Иванов
2 Петров
3 Сидоров
Есть перечень id. Например: 3,1,2,2,3,1,2. Нужно сформулировать запрос, чтобы на основе этого перечня получить такой результат:

TITLE

Сидоров
Иванов
Петров
Петров
Сидоров
Иванов
Петров
Кто подскажет, как такое сделать?

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

textual
Листинг программы
SELECT name FROM
(
    SELECT 3 AS id
    UNION ALL
    SELECT 1 AS id
    UNION ALL
    SELECT 2 AS id
    UNION ALL
    SELECT 2 AS id
    UNION ALL
    SELECT 3 AS id
    UNION ALL
    SELECT 1 AS id
    UNION ALL
    SELECT 2 AS id
) AS tmp
JOIN 
tbl ON tbl.id = tmp.id;

Объяснение кода листинга программы

В данном коде выполняется операция выбора записей из таблицы tbl с использованием временной таблицы tmp.

  1. Создается подзапрос, который выводит последовательность чисел: 3, 1, 2, 2, 3, 1, 2. Это делается с использованием оператора SELECT и оператора UNION ALL, который объединяет несколько выборок в одну.
  2. Эта выборка чисел затем используется во внешнем запросе для объединения с таблицей tbl по полю id. Это делается с использованием оператора JOIN.
  3. В результате получается выборка из таблицы tbl, где записи повторяются столько раз, сколько они встречаются в последовательности чисел. Этот код можно использовать, например, для тестирования нагрузки на базу данных или для проверки производительности запросов.

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


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

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

13   голосов , оценка 4.077 из 5
Похожие ответы