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

Existe / n'existe pas :'select 1' vs 'select field'

Oui, ils sont pareils. exists vérifie s'il y a au moins une ligne dans la sous-requête. Si c'est le cas, il est évalué à true . Les colonnes de la sous-requête n'ont aucune importance.

Selon MSDN, exists :

Spécifie une sous-requête pour tester l'existence de lignes.

Et Oracle :

Une condition EXISTS teste l'existence de lignes dans une sous-requête.

Peut-être que la documentation MySQL est encore plus explicite :

Traditionnellement, une sous-requête EXISTS commence par SELECT *, mais elle peut commencer par SELECT 5 ou SELECT colonne1 ou n'importe quoi du tout. MySQL ignore la liste SELECT dans une telle sous-requête, cela ne fait donc aucune différence.