Mysql
 sql >> Base de données >  >> RDS >> Mysql

Séquence de nombres dans MySQL

Puisqu'il n'y a rien de tel que xrange, on peut utiliser une table séparée stockée avec un entier (comme répondu précédemment), ou simplement créer une procédure stockée pour faire le travail :

DROP PROCEDURE IF EXISTS xrange;
DELIMITER //
CREATE PROCEDURE xrange(x INT, y INT)
BEGIN
  DECLARE i INT DEFAULT x;
  CREATE TEMPORARY TABLE xrange_tmp (c1 INT);
  WHILE i < y DO
    INSERT INTO xrange_tmp VALUES (i);
    SET i = i + 1;
  END WHILE;
END;
//

Utilisation :

CALL xrange(-2,10);
SELECT c1 FROM xrange_tmp;
DROP TABLE xrange_tmp;

Ce qui précède va évidemment être plus lent que de créer une table prête avec des entiers. C'est plus flexible.