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 :
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;
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!