Maison > base de données > tutoriel mysql > Comment générer efficacement une plage de nombres dans MySQL sans boucles ?

Comment générer efficacement une plage de nombres dans MySQL sans boucles ?

Susan Sarandon
Libérer: 2025-01-18 02:20:09
original
970 Les gens l'ont consulté

How to Efficiently Generate a Range of Numbers in MySQL Without Loops?

Génération de séquences de nombres dans MySQL sans boucles

MySQL nécessite souvent de générer des nombres consécutifs pour des tâches telles que le remplissage de tables ou le séquençage de données. Ceci peut être réalisé efficacement en utilisant des opérations basées sur des ensembles, évitant ainsi le besoin de boucles.

Voici une requête pour générer une plage numérique :

<code class="language-sql">INSERT INTO myTable (nr)
SELECT SEQ.SeqValue
FROM (
    SELECT (HUNDREDS.SeqValue + TENS.SeqValue + ONES.SeqValue) SeqValue
    FROM (
        SELECT 0 SeqValue UNION ALL SELECT 1 SeqValue ... UNION ALL SELECT 9 SeqValue
    ) ONES
    CROSS JOIN (
        SELECT 0 SeqValue UNION ALL SELECT 10 SeqValue ... UNION ALL SELECT 90 SeqValue
    ) TENS
    CROSS JOIN (
        SELECT 0 SeqValue UNION ALL SELECT 100 SeqValue ... UNION ALL SELECT 900 SeqValue
    ) HUNDREDS
) SEQ;</code>
Copier après la connexion

Cette requête exploite des sous-requêtes (ONES, TENS, HUNDREDS) pour créer des ensembles de chiffres (0-9, 0-90, 0-900). CROSS JOIN combine ces ensembles, générant toutes les combinaisons possibles. Les résultats sont additionnés pour créer la séquence, et finalement insérés dans myTable.

Cette approche offre une méthode évolutive et efficace pour créer des séquences numériques dans MySQL, éliminant la surcharge des boucles procédurales. La plage est facilement ajustable en modifiant les sous-requêtes.

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