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

Erstellen einer Zahlentabelle in MySQL

Ihnen fehlen Semikolons, Kommas, und selbst nach der Korrektur der Syntax ist es immer noch keine gute Idee, jedes Mal max aus der Tabelle auszuwählen, nur um eine weitere Zeile in einer Schleife einzufügen.

Lassen Sie das fallen und verwenden Sie Generatoren von http:/ /use-the-index-luke.com/blog/2011-07-30/mysql-row-generator :

CREATE OR REPLACE VIEW generator_16
AS SELECT 0 n UNION ALL SELECT 1  UNION ALL SELECT 2  UNION ALL 
   SELECT 3   UNION ALL SELECT 4  UNION ALL SELECT 5  UNION ALL
   SELECT 6   UNION ALL SELECT 7  UNION ALL SELECT 8  UNION ALL
   SELECT 9   UNION ALL SELECT 10 UNION ALL SELECT 11 UNION ALL
   SELECT 12  UNION ALL SELECT 13 UNION ALL SELECT 14 UNION ALL 
   SELECT 15;

CREATE OR REPLACE VIEW generator_256
AS SELECT ( ( hi.n << 4 ) | lo.n ) AS n
     FROM generator_16 lo, generator_16 hi;

CREATE OR REPLACE VIEW generator_4k
AS SELECT ( ( hi.n << 8 ) | lo.n ) AS n
     FROM generator_256 lo, generator_16 hi;

CREATE OR REPLACE VIEW generator_64k
AS SELECT ( ( hi.n << 8 ) | lo.n ) AS n
     FROM generator_256 lo, generator_256 hi;

CREATE OR REPLACE VIEW generator_1m
AS SELECT ( ( hi.n << 16 ) | lo.n ) AS n
     FROM generator_64k lo, generator_16 hi;

Und wenn Sie aus irgendeinem Grund wirklich eine Zahlentabelle brauchen, tun Sie es einfach:

INSERT INTO numbers(number)
SELECT n FROM generator_64k WHERE n < 64000