Mysql
 sql >> Base de données >  >> RDS >> Mysql

MYSQL si une requête select renvoie 0 lignes puis une autre requête select ?

Cela semble fonctionner à partir d'un test rapide que je viens de faire et évite d'avoir à vérifier l'existence de x=1 à deux reprises.

SELECT SQL_CALC_FOUND_ROWS *
FROM mytable
WHERE x = 1

UNION ALL

SELECT *
FROM mytable
WHERE 
FOUND_ROWS() = 0 AND x = 2;

Edit :Suite à votre clarification de la question, les 2 requêtes devront évidemment être compatibles UNION pour que ce qui précède fonctionne.

La réponse à votre question mise à jour est non. Cela n'est pas possible dans une seule requête. Vous auriez besoin d'utiliser une logique procédurale conditionnelle pour exécuter la requête souhaitée.