Maison > base de données > tutoriel mysql > Comment puis-je générer une série d'entiers positifs à l'aide d'instructions SQL SELECT ?

Comment puis-je générer une série d'entiers positifs à l'aide d'instructions SQL SELECT ?

Patricia Arquette
Libérer: 2024-12-20 00:04:20
original
783 Les gens l'ont consulté

How Can I Generate a Series of Positive Integers Using SQL SELECT Statements?

Génération d'entiers positifs à l'aide de SQL SELECT

La nécessité d'obtenir un ensemble de résultats comprenant les N premiers entiers positifs survient souvent dans les tâches de manipulation de données. Cependant, cela peut poser un défi dans les instructions SQL SELECT standard lorsqu'aucune table de comptage n'est fournie.

Tentative de solution SQL standard

Au départ, il peut sembler réalisable de récupérer ces entiers directement à l’aide d’une instruction SELECT. Cependant, la plupart des principaux systèmes SQL ne disposent pas d'un mécanisme intégré permettant de générer un ensemble d'entiers consécutifs. Par conséquent, s'appuyer uniquement sur une instruction SELECT standard peut ne pas donner le résultat souhaité.

Approche spécifique de MySQL

Malheureusement, MySQL présente un inconvénient notable à cet égard. Contrairement à d'autres systèmes offrant des fonctionnalités telles que "CONNECT BY" d'Oracle ou "generate_series" de PostgreSQL, MySQL ne dispose pas d'un mécanisme explicite pour cette tâche.

Solutions alternatives

Pour surmonter cette limitation dans MySQL, vous pouvez envisager une solution de contournement :

  • Créer un Table factice : Créez une table temporaire (par exemple, "filler") avec une colonne "id" et remplissez-la avec les entiers requis à l'aide d'une procédure stockée. Vous pouvez ensuite joindre vos requêtes sur cette table pour obtenir le résultat souhaité.
  • Utilisez une expression de table commune récursive (CTE) : Bien que cela ne soit pas directement pris en charge dans MySQL, vous pouvez simuler une CTE en créer une table temporaire et y insérer des valeurs de manière itérative pour générer la séquence souhaitée.

Exemple MySQL Script

Le script suivant fournit un exemple de création et d'utilisation d'une table de remplissage pour générer des entiers positifs :

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 the procedure to fill the table with integers
CALL prc_filler(10);

-- Select the desired number of integers
SELECT id FROM filler LIMIT 5;
Copier après la connexion

Ce script crée une table temporaire appelée "filler" avec un " id" et la remplit avec les 10 premiers entiers positifs. Vous pouvez ensuite utiliser une instruction SELECT pour récupérer le nombre d'entiers souhaité selon vos besoins.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal