Maison > base de données > tutoriel mysql > Comment puis-je exécuter efficacement une deuxième requête SELECT dans MySQL uniquement si la première requête ne renvoie aucune ligne ?

Comment puis-je exécuter efficacement une deuxième requête SELECT dans MySQL uniquement si la première requête ne renvoie aucune ligne ?

Patricia Arquette
Libérer: 2024-12-25 07:34:33
original
892 Les gens l'ont consulté

How Can I Efficiently Execute a Second SELECT Query in MySQL Only if the First Query Returns Zero Rows?

Requêtes SELECT conditionnelles : exécution de requêtes alternatives basées sur le nombre de lignes

Pour optimiser votre script PHP, vous recherchez une méthode d'exécution dynamique une deuxième requête SELECT uniquement lorsque la première requête ne renvoie aucune ligne. Voici comment y parvenir dans MySQL :

Une approche consiste à utiliser des instructions IF imbriquées pour comparer le nombre de lignes de la première requête :

IF (SELECT COUNT(*) FROM proxies WHERE A='B') > 0
  THEN SELECT * FROM proxies WHERE A='B'
ELSEIF (SELECT COUNT(*) FROM proxies WHERE A='C') > 0
  THEN SELECT * FROM proxies WHERE A='C'
END IF
Copier après la connexion

Cependant, cette méthode exécute chaque requête deux fois pour chaque condition. Pour une meilleure optimisation, pensez à utiliser UNION ALL avec l'opérateur EXISTS :

SELECT *
FROM proxies
WHERE A='B'
UNION ALL
SELECT *
FROM proxies
WHERE A='C' AND NOT EXISTS (
  SELECT 1
  FROM proxies
  WHERE A='B'
)
Copier après la connexion

Cette requête recherchera d'abord les lignes avec A='B' et les renverra. Si aucune ligne avec A='B' n'est trouvée, il récupérera alors les lignes avec A='C', garantissant qu'une seule requête est exécutée.

Une démo de SQL Fiddle peut être trouvée ici : [Lien]

Cette approche exécute efficacement la deuxième requête uniquement lorsque la première requête ne renvoie aucune ligne, offrant ainsi des performances améliorées pour votre script PHP.

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