Maison >base de données >tutoriel mysql >Comment diviser et utiliser efficacement les chaînes d'entrée pour les instructions de cas dynamiques ?

Comment diviser et utiliser efficacement les chaînes d'entrée pour les instructions de cas dynamiques ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-31 19:45:18916parcourir

How to Efficiently Split and Use Input Strings for Dynamic Case Statements?

Diviser les chaînes d'entrée

Pour diviser les chaînes d'entrée (dates et ensembles), nous pouvons utiliser les techniques suivantes :

  1. Dates (p_dates) : Utilisez la fonction string_to_array() pour créer un tableau de plages de dates à partir de la chaîne de dates. Par exemple :

    SELECT string_to_array('2001-01-01to2001-01-05,2001-01-10to2001-01-15', ',')
  2. Ensembles (p_sets) : De même, utilisez la fonction string_to_array() pour diviser la chaîne des ensembles en un tableau de noms d'ensembles. Par exemple :

    SELECT string_to_array('s1,s2,s3,s4', ',')

Préparation de l'instruction de cas dynamique

Une fois ces tableaux créés, nous pouvons les utiliser pour générer l'instruction de cas dynamique en utilisant une combinaison d'instructions CASE WHEN et SELECT. Par exemple :

CASE WHEN given_dates BETWEEN date_ranges[1] AND date_ranges[2] THEN set_names[1]
     WHEN given_dates BETWEEN date_ranges[3] AND date_ranges[4] THEN set_names[2]
     ...
     ELSE NULL
END

Ici, date_ranges et set_names sont les tableaux créés respectivement à partir de p_dates et p_sets.

Cette instruction de cas dynamique peut ensuite être utilisée pour mettre à jour la colonne set_name en fonction du spécifié plages de dates et noms de set.

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