Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Mendapatkan Integer Positif N Pertama Hanya Menggunakan Pernyataan SELECT SQL?

Bagaimanakah Saya Boleh Mendapatkan Integer Positif N Pertama Hanya Menggunakan Pernyataan SELECT SQL?

Mary-Kate Olsen
Lepaskan: 2024-12-19 11:38:09
asal
601 orang telah melayarinya

How Can I Retrieve the First N Positive Integers Using Only a SQL SELECT Statement?

Mendapatkan Nombor Bulat Positif N Pertama Menggunakan SQL SELECT

Keperluan untuk mengekstrak integer positif N pertama menggunakan semata-mata pernyataan SQL SELECT standard timbul sekali-sekala. Walau bagaimanapun, memastikan kebolehlaksanaan permintaan sedemikian tanpa jadual kiraan pra-diisi adalah penting.

Pendekatan SQL Standard

Dalam bidang SQL standard, mendapatkan semula secara langsung siri jujukan integer positif tanpa jadual kiraan ialah tidak boleh dicapai.

Penyelesaian Khusus MySQL

MySQL tidak mempunyai fungsi asli untuk menjana nombor berjujukan, tetapi ia membenarkan penciptaan set baris tiruan untuk memintas pengehadan ini. Pertimbangkan contoh berikut daripada pelbagai sistem pengurusan pangkalan data:

  • Oracle:
SELECT  level
FROM    dual
CONNECT BY
        level <= 10
Salin selepas log masuk
  • SQL Pelayan:
WITH    q AS
        (
        SELECT  1 AS num
        UNION ALL
        SELECT  num + 1
        FROM    q
        WHERE   num < 10
        )
SELECT  *
FROM    q
Salin selepas log masuk
  • PostgreSQL:
SELECT  num
FROM    generate_series(1, 10) num
Salin selepas log masuk

Batasan MySQL

Malangnya, MySQL tidak menyediakan fungsi yang setanding, yang boleh dilihat sebagai kelemahan. Penyelesaian boleh dilakukan dengan menggunakan prosedur yang ditentukan pengguna untuk mengisi jadual sementara dengan bilangan baris yang dikehendaki, memudahkan pengambilan berikutnya. Contohnya:

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
$$

CALL prc_filler(10);
SELECT  * FROM filler;
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Integer Positif N Pertama Hanya Menggunakan Pernyataan SELECT SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan