Maison > base de données > tutoriel mysql > Comment générer une plage de nombres dans MySQL en utilisant uniquement SQL ?

Comment générer une plage de nombres dans MySQL en utilisant uniquement SQL ?

Patricia Arquette
Libérer: 2025-01-18 02:07:11
original
989 Les gens l'ont consulté

How to Generate a Range of Numbers in MySQL Using Only SQL?

Générer une séquence de nombres dans MySQL

L'utilisation de requêtes MySQL pour générer une série de nombres consécutifs peut être réalisée de différentes manières. Cependant, pour une solution basée sur une collection utilisant uniquement MySQL, considérez la requête suivante :

<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 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9
    ) ONES
    CROSS JOIN (
        SELECT 0 SeqValue UNION ALL SELECT 10 UNION ALL SELECT 20 UNION ALL SELECT 30 UNION ALL SELECT 40 UNION ALL SELECT 50 UNION ALL SELECT 60 UNION ALL SELECT 70 UNION ALL SELECT 80 UNION ALL SELECT 90
    ) TENS
    CROSS JOIN (
        SELECT 0 SeqValue UNION ALL SELECT 100 UNION ALL SELECT 200 UNION ALL SELECT 300 UNION ALL SELECT 400 UNION ALL SELECT 500 UNION ALL SELECT 600 UNION ALL SELECT 700 UNION ALL SELECT 800 UNION ALL SELECT 900
    ) HUNDREDS
) SEQ;</code>
Copier après la connexion

Cette requête s'appuie sur un ensemble imbriqué de sous-requêtes pour générer une séquence de nombres. Plus précisément :

  1. ONES : Génère une séquence de nombres de 0 à 9.
  2. TENS : Génère une séquence de multiples de 10 de 0 à 90.
  3. CENTAINES : Génère une séquence de multiples de 100 de 0 à 900.

En croisant ces sous-requêtes, nous obtenons toutes les combinaisons possibles de séquences. La sous-requête SEQ finale combine ces valeurs pour générer la séquence souhaitée :

<code>SeqValue = HUNDREDS.SeqValue + TENS.SeqValue + ONES.SeqValue</code>
Copier après la connexion

Par exemple, pour générer une séquence de 0 à 999, la requête renverrait le résultat suivant :

<code>nr
0
1
2
3
4
5
...
998
999</code>
Copier après la connexion

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