Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Zahlenfolge in MySQL

Da es so etwas wie xrange nicht gibt, könnte man eine separate Tabelle verwenden, die mit Integer gespeichert ist (wie zuvor beantwortet), oder einfach eine gespeicherte Prozedur erstellen, um die Arbeit zu erledigen:

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;
//

Verwendung:

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

Das Obige wird offensichtlich langsamer sein, als eine fertige Tabelle mit ganzen Zahlen zu erstellen. Es ist jedoch flexibler.