recherche
Maisonbase de donnéestutoriel mysqlComment puis-je réutiliser les champs calculés dans les requêtes MySQL SELECT pour améliorer la lisibilité et éviter les répétitions ?

How Can I Reuse Calculated Fields in MySQL SELECT Queries to Improve Readability and Avoid Repetition?

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

Lorsque vous traitez des requêtes SQL volumineuses et complexes, il est très avantageux de réutiliser les champs calculés pour éviter la duplication et améliorer la lisibilité. Dans MySQL, vous pouvez utiliser des variables utilisateur à cet effet.

Considérons l'exemple suivant :

SELECT 
    s.f1 + s.f2 as total_sale, 
    s.f1 / total_sale as f1_percent
FROM sales s

Cette requête tente de réutiliser le champ calculé total_sale dans l'expression f1_percent. Cependant, MySQL renverra une erreur "colonne inconnue" car total_sale n'est pas défini comme colonne dans la table des ventes.

Pour résoudre ce problème, nous pouvons utiliser l'opérateur := pour attribuer la valeur calculée à la variable utilisateur :

SELECT 
    @total_sale := s.f1 + s.f2 as total_sale, 
    s.f1 / @total_sale as f1_percent
FROM sales s

En ajoutant @ devant le nom de la variable, nous créons une variable utilisateur qui pourra être référencée ultérieurement dans la requête. Dans cet exemple, nous attribuons les valeurs de s.f1 s.f2 à la variable @total_sale. Nous pouvons ensuite utiliser cette variable dans des expressions ultérieures telles que s.f1/@total_sale pour calculer f1_percent.

Il est important de noter que bien que cette méthode nous permette de réutiliser les champs calculés, elle comporte également quelques mises en garde. Selon la documentation MySQL, l'attribution et la lecture de la valeur d'une variable utilisateur dans la même instruction constituent un comportement indéfini et peuvent produire des résultats inattendus. Il est donc recommandé d’utiliser cette technique avec prudence et uniquement lorsque cela est nécessaire.

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
Quelles sont les différences de syntaxe entre MySQL et d'autres dialectes SQL?Quelles sont les différences de syntaxe entre MySQL et d'autres dialectes SQL?Apr 27, 2025 am 12:26 AM

MySQLDIFFERSFromothersqlDialictsinsyntaxforlimit, auto-imprémentation, stringcomparison, sous-questionnaires et performanceanalysis.1) MySqluseSlimit, WhilesQlServerUseStopandorAnUseSrownum.2)

Qu'est-ce que le partitionnement MySQL?Qu'est-ce que le partitionnement MySQL?Apr 27, 2025 am 12:23 AM

Le partitionnement MySQL améliore les performances et simplifie la maintenance. 1) Diviser les grandes tables en petits morceaux par des critères spécifiques (tels que les gammes de dattes), 2) Divisez physiquement les données en fichiers indépendants, 3) MySQL peut se concentrer sur des partitions connexes lors de l'interrogation, 4) L'optimiseur de requête peut ignorer les partitions non liées, 5) le choix de la bonne stratégie de partition et le maintenir régulièrement est la clé.

Comment accordez-vous et révoquez-vous les privilèges dans MySQL?Comment accordez-vous et révoquez-vous les privilèges dans MySQL?Apr 27, 2025 am 12:21 AM

Comment accorder et révoquer les autorisations dans MySQL? 1. Utilisez la déclaration de subvention pour accorder des autorisations, telles que GrantallPrivilegesondatabase_Name.to'Username'@'host '; 2. Utilisez la déclaration de révocation pour révoquer les autorisations, telles que Revokeallprivilegesondatabase_name.from'username'@'host 'pour garantir la communication opportune des modifications d'autorisation.

Expliquez les différences entre les moteurs de stockage InnoDB et Myisam.Expliquez les différences entre les moteurs de stockage InnoDB et Myisam.Apr 27, 2025 am 12:20 AM

INNODB convient aux applications qui nécessitent un support de transaction et une concurrence élevée, tandis que Myisam convient aux applications qui nécessitent plus de lectures et moins d'écritures. 1.InNODB prend en charge les verrous de transaction et de bancs, adaptés aux systèmes de commerce électronique et bancaire. 2.Myisam fournit une lecture et une indexation rapides, adaptées aux systèmes de blogs et de gestion de contenu.

Quels sont les différents types de jointures à MySQL?Quels sont les différents types de jointures à MySQL?Apr 27, 2025 am 12:13 AM

Il existe quatre types de jointures principales dans MySQL: innerjoin, gauche, droite et fullouterjoin. 1.Innerjoin Renvoie toutes les lignes dans les deux tableaux qui remplissent les conditions de jointure. 2.Leftjoin Renvoie toutes les lignes de la table de gauche, même s'il n'y a pas de lignes correspondantes dans la table droite. 3. Le droit est contraire à la gauche et renvoie toutes les lignes dans la table droite. 4.FulLouterJoin Renvoie toutes les lignes dans les deux tableaux qui se rencontrent ou ne remplissent pas les conditions de jointure.

Quels sont les différents moteurs de stockage disponibles dans MySQL?Quels sont les différents moteurs de stockage disponibles dans MySQL?Apr 26, 2025 am 12:27 AM

MySQLoffersVariousStorageEngines, chacune, chacun desCasses: 1) InnodbisidealForApplications newedingacidcompenciance and highcurrency, soutenant les transactions et manqueurs

Quelles sont les vulnérabilités de sécurité communes dans MySQL?Quelles sont les vulnérabilités de sécurité communes dans MySQL?Apr 26, 2025 am 12:27 AM

Les vulnérabilités de sécurité courantes dans MySQL incluent l'injection SQL, les mots de passe faibles, la configuration d'autorisation incorrecte et les logiciels unpudés. 1. L'injection SQL peut être évitée en utilisant des instructions de prétraitement. 2. Les mots de passe faibles peuvent être évités en utilisant de force des stratégies de mot de passe solides. 3. Une mauvaise configuration d'autorisation peut être résolue par examen régulier et ajustement des autorisations utilisateur. 4. Les logiciels unpus peuvent être corrigés en vérifiant et mise à jour régulièrement la version MySQL.

Comment pouvez-vous identifier les requêtes lentes dans MySQL?Comment pouvez-vous identifier les requêtes lentes dans MySQL?Apr 26, 2025 am 12:15 AM

L'identification des requêtes lentes dans MySQL peut être réalisée en activant les journaux de requête lents et en définissant des seuils. 1. Activer les journaux de requête lents et définir les seuils. 2. Afficher et analyser les fichiers journaux de requête lente et utiliser des outils tels que MySqlDumpSlow ou Pt-Query-digest pour une analyse approfondie. 3. Optimisation des requêtes lentes peut être réalisée grâce à l'optimisation de l'index, à la réécriture de la requête et à l'évitement de l'utilisation de Select *.

See all articles

Outils d'IA chauds

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.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

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

Navigateur d'examen sécurisé

Navigateur d'examen sécurisé

Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.

VSCode Windows 64 bits Télécharger

VSCode Windows 64 bits Télécharger

Un éditeur IDE gratuit et puissant lancé par Microsoft

Version Mac de WebStorm

Version Mac de WebStorm

Outils de développement JavaScript utiles

PhpStorm version Mac

PhpStorm version Mac

Le dernier (2018.2.1) outil de développement intégré PHP professionnel