В postgres есть встроенная функция generate_series(), которая может генерировать строки с числом.генерировать много строк с mysql
есть функция в mysql делает то же самое?
В postgres есть встроенная функция generate_series(), которая может генерировать строки с числом.генерировать много строк с mysql
есть функция в mysql делает то же самое?
попробовать этот один:
select @rownum:[email protected]+1 n, t.* from tbl t, (SELECT @rownum:=0) r order by somefield
Или, может быть, вы имеете в виду How do I make a row generator in mysql.
, но auto_increment не может использоваться с оператором «select» – anru
См. Ссылку. Я добавил ссылку на аналогичный вопрос. –
Если все остальное терпит неудачу, вы могли бы повторить функцию в MySQL как процедура.
Что-то подобное может работать
DELIMITER //
DROP PROCEDURE IF EXISTS `generate_series`//
CREATE PROCEDURE `generete_series`(p_start Int, p_end Int)
BEGIN
/* We need a temporary table to hold the values until we can output them */
CREATE TEMPORARY TABLE `temp_series`(val Int Not Null);
/* Add all the values in the range to the temp table. */
set @insert_query = CONCAT('INSERT INTO `temp_series` VALUES (', p_start, ')');
set @ind = p_start + 1;
while @ind <= p_end do
set @insert_query = CONCAT(@insert_query, ',(', @ind, ')');
set @ind = @ind + 1;
end while;
prepare stmt FROM @insert_query;
execute stmt;
/* Select the values and echo them back. */
SELECT * FROM `temp_series`;
/* Free resources. This isnt needed, technically, unless
* you plan on using the function multiple times per connection */
DROP TABLE `temp_series`;
END//
DELIMITER ;
Обратите внимание, что это на самом деле не очень эффективная процедура, так как она использует временную таблицу и подготовленный запрос. Не очень хорошо использовать очень часто.
Вы должны искать альтернативные методы. Скорее всего, лучший способ сделать то, что вы пытаетесь сделать, не прибегая к этому.
Awesome :) Если вы нашли дублирующий вопрос, который даст вам ответ, я бы предложил закрыть этот. –
как я могу закрыть вопрос? где ссылка? Я думаю, наверное, у меня недостаточно репутаций, чтобы это сделать. – anru