Мне интересно, есть ли в MySQL функция, например generate_series, которая обычно принимает начальное целочисленное значение, конечное и приращение и возвращает массив всех значений, включая и между началом и концом. Если такой функции нет, как бы объявить ее в MySQL?
Это слишком долго для комментария.
Нет такой функции. MySQL не поддерживает пользовательские функции, которые возвращают таблицы, поэтому вы не можете определить свои собственные. В v8+ вы можете использовать рекурсивный CTE для генерации чисел.
Однако самый простой способ - это, вероятно, определить свою собственную таблицу numbers
. Другая альтернатива - использовать любую старую большую таблицу и сделать что-то вроде:
select (@rn := @rn + 1) as num
from bigtable t cross join
(select @rn := 0) params
limit 100; -- however many numbers you want
Конечно, у bigtable
должно быть достаточно строк для чисел, которые вы хотите создать.