Table des matières
2. Générer une série de dates
Maison base de données tutoriel mysql Comment générer une série de nombres ou de dates dans MySQL?

Comment générer une série de nombres ou de dates dans MySQL?

Aug 02, 2025 am 10:53 AM

  • Pour générer une série de nombres dans MySQL 8.0, utilisez un CTE récursif: avec des nombres récursifs comme (sélectionnez 1 comme n Union tous sélectionnez n 1 à partir des nombres où n
  • Comment générer une série de nombres ou de dates dans MySQL?

    Dans MySQL, vous ne pouvez pas générer directement une série de nombres ou de dates avec une seule fonction intégrée comme dans certaines autres bases de données (par exemple, les postgresql generate_series() ), mais il existe plusieurs solutions de contournement efficaces. Voici comment le faire en utilisant des techniques communes.

    Comment générer une série de nombres ou de dates dans MySQL?

    1. Générer une série de nombres

    Pour générer une séquence de nombres (par exemple, 1 à 10), vous pouvez utiliser une expression de table commune récursive (CTE), disponible dans MySQL 8.0.

     Avec des nombres récursifs comme (
        Sélectionnez 1 comme n
        Union All
        Sélectionnez n 1 dans les nombres où n <10
    )
    Sélectionnez N dans les numéros;

    Cela génère des nombres de 1 à 10.

    Comment générer une série de nombres ou de dates dans MySQL?

    Remarque : Si vous utilisez MySQL <8.0, vous pouvez simuler ceci à l'aide d'une table de nombres (ou de décompte), ou par des tables de chiffres dérivés de jonins croisés.

    Méthode alternative utilisant des lignes factices (pré-8.0 compatibles):

    Comment générer une série de nombres ou de dates dans MySQL?
     Sélectionnez-en.n Tens.n * 10 1 comme numéro
    DEPUIS
      (Sélectionnez 0 comme n Union All Select 1 Union All Select 2 Union Tous SELECT 3
       Union All Select 4 Union All Select 5 Union All Select 6 Union All Select 7
       Union All Select 8 Union tous Sélectionnez 9)
    Se joindre à
      (Sélectionnez 0 comme n Union All Select 1 Union All Select 2 Union Tous SELECT 3
       Union All Select 4 Union All Select 5 Union All Select 6 Union All Select 7
       Union All Select 8 Union Tous Select 9) Tens
    Commande par numéro;

    Cela vous donne des nombres de 1 à 100. Ajustez la formule et rejoignez des gammes plus grandes.


    2. Générer une série de dates

    Une fois que vous pouvez générer des numéros, vous pouvez les utiliser pour créer des séquences de date.

    Par exemple, pour générer toutes les dates en janvier 2024:

     Avec des dates récursives comme (
        Sélectionnez &#39;2024-01-01&#39; comme date_val
        Union All
        Sélectionnez Date_add (date_val, intervalle 1 jour)
        Des dates
        Où date_val <&#39;2024-01-31&#39;
    )
    Sélectionnez Date_val à partir des dates;

    Ou, en utilisant la méthode de série de nombres pour calculer les dates:

     Sélectionnez Date_add (&#39;2024-01-01&#39;, Interval (One.n Tens.n * 10) Day) AS DATE_VAL
    DEPUIS
      (Sélectionnez 0 comme n Union All Select 1 Union All Select 2 Union Tous SELECT 3
       Union All Select 4 Union All Select 5 Union All Select 6 Union All Select 7
       Union All Select 8 Union tous Sélectionnez 9)
    Se joindre à
      (Sélectionnez 0 comme n Union All Select 1 Union All Select 2 Union Tous SELECT 3
       Union All Select 4 Union All Select 5 Union All Select 6 Union All Select 7
       Union All Select 8 Union Tous Select 9) Tens
    Où date_add (&#39;2024-01-01&#39;, intervalle (one.n Tens.n * 10) jour) <= &#39;2024-01-31&#39;
    Ordre par date_val;

    Cette approche est utile pour remplir les dates manquantes dans les rapports ou générer des données de calendrier.


    3. Cas d'utilisation pratiques

    • Combler les lacunes dans les données de séries chronologiques : rejoignez les dates générées avec vos données pour afficher les zéros pour les jours manquants.
    • Pagination ou traitement par lots : utilisez des séries de nombres pour simuler la numérotation des lignes ou les décalages.
    • Génération de données de test : créez rapidement des séquences pour tester les requêtes.

    Fondamentalement, alors que MySQL n'a pas de generate_series() , la combinaison de CTES récursives ou de produits cartésiens de petits ensembles vous permet de générer efficacement les séquences de numéro et de date. La méthode CTE récursive est plus propre si vous êtes sur MySQL 8.0.

    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!

    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

    Outils d'IA chauds

    Undress AI Tool

    Undress AI Tool

    Images de déshabillage gratuites

    Undresser.AI Undress

    Undresser.AI Undress

    Application basée sur l'IA pour créer des photos de nu réalistes

    AI Clothes Remover

    AI Clothes Remover

    Outil d'IA en ligne pour supprimer les vêtements des photos.

    Clothoff.io

    Clothoff.io

    Dissolvant de vêtements AI

    Video Face Swap

    Video Face Swap

    Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

    Outils chauds

    Bloc-notes++7.3.1

    Bloc-notes++7.3.1

    Éditeur de code facile à utiliser et gratuit

    SublimeText3 version chinoise

    SublimeText3 version chinoise

    Version chinoise, très simple à utiliser

    Envoyer Studio 13.0.1

    Envoyer Studio 13.0.1

    Puissant environnement de développement intégré PHP

    Dreamweaver CS6

    Dreamweaver CS6

    Outils de développement Web visuel

    SublimeText3 version Mac

    SublimeText3 version Mac

    Logiciel d'édition de code au niveau de Dieu (SublimeText3)

    Sujets chauds

    Tutoriel PHP
    1538
    276
    Sécuriser les connexions MySQL avec le cryptage SSL / TLS Sécuriser les connexions MySQL avec le cryptage SSL / TLS Jul 21, 2025 am 02:08 AM

    Pourquoi ai-je besoin de la connexion MySQL de cryptage SSL / TLS? Étant donné que les connexions non cryptées peuvent provoquer l'interception des données sensibles, l'activation de SSL / TLS peut empêcher les attaques de l'homme au milieu et répondre aux exigences de conformité; 2. Comment configurer SSL / TLS pour MySQL? Vous devez générer un certificat et une clé privée, modifier le fichier de configuration pour spécifier les chemins SSL-CA, SSL-CERT et SSL-Key et redémarrer le service; 3. Comment forcer SSL lorsque le client se connecte? Implémenté en spécifiant les exigences ou requirex509 lors de la création d'un utilisateur; 4. Les détails qui sont facilement négligés dans la configuration SSL incluent les autorisations de chemin de certificat, les problèmes d'expiration des certificats et les exigences de configuration du client.

    Comment auditer l'activité de la base de données dans MySQL? Comment auditer l'activité de la base de données dans MySQL? Aug 05, 2025 pm 01:34 PM

    USEMYSQLENERPRISEAUDITPLUGINIFENONTER PRIXEDITIONBYABLINGITINCHIGFIGURATIONSWITHSERVER-AUDIT = FORCE_PLUS_PERMANENTANDCUMIDEVENTSVIASERVER_AUDIT_EVENTS; 2.Forfreealternatives, useperconaserverormariaDiaDbwithheiropen-SourceAuditpluginslikeaAut_Log; 3.

    Comment créer une table pivot dans MySQL Comment créer une table pivot dans MySQL Jul 21, 2025 am 01:47 AM

    Les méthodes qui implémentent les fonctions de table de pivot Excel similaires à MySQL incluent principalement l'utilisation de cas ou des instructions IF pour combiner les fonctions agrégées pour la conversion de lignes. 1. CAS D'UTILISATION Lorsque vous réalisez la conversion statique de ligne à colonne, ce qui convient aux situations où les valeurs de colonne sont connues pour être converties. De nouvelles colonnes sont générées pour différentes valeurs et les données sont résumées par SUM (caswhen ...). 2. Générez dynamiquement des colonnes, adaptées aux situations où les valeurs spécifiques sont incertaines. Vous devez obtenir une valeur unique avant de construire une expression de cas. Habituellement, il est combiné avec des procédures stockées ou une logique de couche d'application pour épisser et exécuter des chaînes SQL; 3. Utilisez si des fonctions pour simplifier la syntaxe pour obtenir le même effet que le cas, mais la méthode d'écriture est plus compacte. Dans les applications réelles, si la dimension est fixe, la colonne peut être codée en dur directement. Si la dimension change fréquemment, il est recommandé d'utiliser des scripts ou de les stocker.

    Optimiser MySQL pour la détection de fraude en temps réel Optimiser MySQL pour la détection de fraude en temps réel Jul 21, 2025 am 01:59 AM

    TOOPTIMIZEMYSQLFORREAL-TIMEFRAUDDETECTION, ConfigureSmartIndexing, ChooseInNodBasthestorageEngine, andTuneSystemSettingSforHighthroughput.1) UseCompositEndCoveringIndexestospeEUpfrequentQueries withoutOver-indexing.

    Optimisation MySQL pour le stockage de données financières Optimisation MySQL pour le stockage de données financières Jul 27, 2025 am 02:06 AM

    MySQL doit être optimisé pour les systèmes financiers: 1. Les données financières doivent être utilisées pour garantir la précision à l'aide de type décimal, et DateTime est utilisé dans les champs de temps pour éviter les problèmes de fuseau horaire; 2. La conception de l'indice doit être raisonnable, évitez les mises à jour fréquentes des champs pour créer des index, combiner les index dans l'ordre de requête et nettoyer régulièrement les index inutiles; 3. Utiliser les transactions pour garantir la cohérence, contrôler la granularité des transactions, éviter les transactions longues et les opérations non essentielles intégrées, et sélectionner les niveaux d'isolement appropriés en fonction des entreprises; 4. Partitionner les données historiques au temps, archiver les données froides et utiliser des tables compressées pour améliorer l'efficacité de la requête et optimiser le stockage.

    Sécuriser MySQL avec des privilèges au niveau de l'objet Sécuriser MySQL avec des privilèges au niveau de l'objet Jul 29, 2025 am 01:34 AM

    ToseCuremysQleffectively, useobject-levelprivilestolimitreaccessbasedheirSpecificneeds.binbyranding comptabilisation de l'objectif-levelprivilegesapplytodatabases, des tables, des orcolumns

    Optimisation MySQL pour les flux de données en temps réel Optimisation MySQL pour les flux de données en temps réel Jul 26, 2025 am 05:41 AM

    TOOPTIMIZEMYSQLFORREAL-TIMEDATAFEEDS, FirstChooseTheinNodBstorageEngineForTransactions et Levellocking, UseMemoryorRocksdbForTemporaryData, et la Séries-seriesdatabytime.Second, INDEXSTRATÉRALEMENT

    Analyse des coûts de la base de données MySQL pour la migration du cloud Analyse des coûts de la base de données MySQL pour la migration du cloud Jul 26, 2025 am 03:32 AM

    La question de savoir si MySQL vaut la peine de passer au cloud dépend du scénario d'utilisation spécifique. Si votre entreprise doit être lancée rapidement, élargissez élastiquement et simplifiez les opérations et la maintenance, et peut accepter un modèle de paiement en tant que go, alors passer au cloud en vaut la peine; Mais si votre base de données est stable pendant une longue période, des restrictions sensibles à la latence ou à la conformité, elle peut ne pas être rentable. Les clés des coûts de contrôle comprennent la sélection du bon fournisseur et du bon package, la configuration des ressources raisonnablement, en utilisant des instances réservées, en gérant les journaux de sauvegarde et en optimisant les performances de requête.

    See all articles