Maison >base de données >tutoriel mysql >Comment mettre à jour dynamiquement une table basée sur des plages de dates fractionnées et définir des noms à l'aide d'une instruction Case ?
Diviser la chaîne donnée et préparer l'instruction de cas
Pour mettre à jour efficacement une table en fonction de plages de dates spécifiques et des noms d'ensemble correspondants, il est nécessaire de diviser les chaînes données en composants individuels de manière dynamique. Cette approche permet de gérer les paramètres d'entrée variables et garantit la flexibilité des opérations de mise à jour.
Partage des plages de dates et des noms d'ensemble
Date divisée Plages :
SELECT unnest(string_to_array(p_dates, ',')) AS date_range;
Noms des ensembles divisés :
SELECT unnest(string_to_array(p_sets, ',')) AS set_name;
Préparation dynamique de la déclaration de cas
Une fois les plages de dates et définies les noms sont divisés, une instruction de cas dynamique peut être construite en utilisant ce qui suit étapes :
Parcourir les plages de dates :
Extraire la plage Limites :
Build Case Clause :
L'extrait de code suivant montre comment préparer le dossier dynamique déclaration :
PREPARE upd_tbl AS UPDATE table_name SET set_name = CASE WHEN given_date BETWEEN split_part(, 'to', 1)::date AND split_part(, 'to', 2)::date THEN ELSE null END;
Où :
En exécutant cette instruction préparée avec date_range et set_name comme paramètres, la table peut être mise à jour en fonction de la date spécifiée plages et noms d'ensembles.
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!