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.