Maison > base de données > tutoriel mysql > Comment puis-je réutiliser les champs calculés dans les requêtes MySQL SELECT ?

Comment puis-je réutiliser les champs calculés dans les requêtes MySQL SELECT ?

Susan Sarandon
Libérer: 2025-01-24 11:52:10
original
599 Les gens l'ont consulté

How Can I Reuse Calculated Fields in MySQL SELECT Queries?

Réutiliser efficacement les champs calculés dans les requêtes MySQL SELECT

MySQL permet la réutilisation des champs calculés dans les SELECT instructions, simplifiant les requêtes complexes et réduisant la redondance. Cependant, le référencement direct d'un champ calculé dans la même liste SELECT n'est pas directement pris en charge. Illustrons cela avec un exemple :

La requête suivante tente de réutiliser le total_sale calcul :

<code class="language-sql">SELECT 
    s.f1 + s.f2 as total_sale, 
    s.f1 / total_sale as f1_percent
FROM sales s;</code>
Copier après la connexion

Cela entraînera une erreur car total_sale n'est pas reconnu comme colonne au moment où f1_percent est calculé.

La solution : variables définies par l'utilisateur

Pour surmonter cette limitation, nous pouvons exploiter les variables définies par l'utilisateur de MySQL :

<code class="language-sql">SELECT 
    @total_sale := s.f1 + s.f2 as total_sale, 
    s.f1 / @total_sale as f1_percent
FROM sales s;</code>
Copier après la connexion

Ici, nous attribuons le résultat de s.f1 s.f2 à la variable utilisateur @total_sale. Cette variable est ensuite disponible pour être utilisée dans le calcul ultérieur de f1_percent.

Considérations importantes :

La documentation MySQL met en garde contre le fait de se fier à l'ordre d'évaluation lors de l'attribution et de la lecture de variables utilisateur dans la même instruction. Le comportement peut être imprévisible. Pour obtenir des résultats fiables, en particulier dans les requêtes complexes, envisagez des approches alternatives telles que les sous-requêtes ou les expressions de table communes (CTE) qui offrent une meilleure clarté et prévisibilité. Pour plus de détails, consultez la documentation officielle MySQL sur les variables utilisateur.

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