Dans postgres il y a une fonction intégrée generate_series() qui peut générer des lignes avec nombre.générer beaucoup de lignes avec mysql
y at-il une fonction dans mysql fait la même chose?
Dans postgres il y a une fonction intégrée generate_series() qui peut générer des lignes avec nombre.générer beaucoup de lignes avec mysql
y at-il une fonction dans mysql fait la même chose?
essayer celui-ci:
select @rownum:[email protected]+1 n, t.* from tbl t, (SELECT @rownum:=0) r order by somefield
Ou, peut-être vous dire How do I make a row generator in mysql.
mais auto_increment ne peut pas être utilisé avec l'instruction "select" – anru
Veuillez voir le lien J'ai ajouté un lien vers une question similaire. –
Si tout le reste échoue, vous pouvez répliquer la fonction dans MySQL comme une procédure.
Quelque chose comme cela pourrait fonctionner
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 ;
Notez que ce n'est pas vraiment une procédure très efficace, car il utilise une table temporaire et requête préparée. Pas une bonne chose à utiliser très souvent.
Vous devriez chercher des méthodes alternatives. Il y a probablement une meilleure façon de faire ce que vous essayez de faire, sans avoir à recourir à cela.
Impressionnant :) Si vous avez trouvé une question en double qui vous donne la réponse, je suggère de fermer celui-ci. –
comment puis-je fermer une question? où est le lien? Je pense que je n'ai probablement pas assez de réputaion pour le faire. – anru