Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menjana Integer Positif N Pertama dengan Pernyataan SELECT SQL?
Menjana N Integer Positif Pertama Menggunakan SQL SELECT
Masalah:
Mendapatkan yang pertama N integer positif yang hanya menggunakan pernyataan SQL SELECT standard telah menimbulkan cabaran. Adakah terdapat penyelesaian tanpa bergantung pada jadual kiraan?
Jawapan:
Walaupun SQL umum tidak mempunyai kaedah asli untuk operasi ini, beberapa sistem pangkalan data utama menawarkan penyelesaian:
Oracle:
SELECT level FROM dual CONNECT BY level <= 10
SQL Pelayan:
WITH q AS ( SELECT 1 AS num UNION ALL SELECT num + 1 FROM q WHERE num < 10 ) SELECT * FROM q
PostgreSQL:
SELECT num FROM generate_series(1, 10) num
MySQL:
Tidak seperti sistem yang disebutkan di atas, MySQL tidak mempunyai mekanisme yang sama. Sebagai penyelesaian, anda boleh menggunakan skrip berikut untuk mencipta jadual sementara dan mengisinya dengan nombor yang dikehendaki:
CREATE TABLE filler ( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT ) ENGINE=Memory; CREATE PROCEDURE prc_filler(cnt INT) BEGIN DECLARE _cnt INT; SET _cnt = 1; WHILE _cnt <= cnt DO INSERT INTO filler SELECT _cnt; SET _cnt = _cnt + 1; END WHILE; END $$
Untuk menggunakan skrip, panggil prosedur dengan nombor integer yang dikehendaki:
CALL prc_filler(10);
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Integer Positif N Pertama dengan Pernyataan SELECT SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!