Bonjour,
je remarque dans de nombreuse requetes SELECT la présence d'unet where 1 simplement. Je ne comprends pas à quoi cela sert, est-ce vraiment utile ?:?Code:WHERE 1
merci
Version imprimable
Bonjour,
je remarque dans de nombreuse requetes SELECT la présence d'unet where 1 simplement. Je ne comprends pas à quoi cela sert, est-ce vraiment utile ?:?Code:WHERE 1
merci
Ou?Citation:
je remarque dans de nombreuse requetes SELECT la présence d'un
Ce que vous dites est faux ce que vous devez voir c'estCitation:
Expression de type non booléen spécifiée dans un contexte où une condition est attendue, près de '1'.
Ou quelque chose comme çà.Code:WHERE 1=1
En général cela est utilisé dans le cas de requètes créées à la volée dans un code .NET par exemple et dans lequel des filtres sont ajoutés ou pas en fonction d'un contexte.
Cela permet au développeur de s'assurer qu'il y a déjà une clause WHERE...
pardon le code entier est :
donc si j'ai bien compris ce "WHERE 1" ne sert à rien ici ...Code:SELECT * FROM client WHERE 1 ORDER BY idClient
merci pour l'explication.
est syntaxiquement incorrecte. Ce doit êtreCode:WHERE 1
Code:WHERE 1=1
est un trick pour permettre d'ajouter dynamiquement des conditions and ajoutant:Code:WHERE 1
ce qui permet d'eviter de devoir se soucier si c'est la premiere ou pas (ou dans ce cas il faudrait mettreCode:and x = y
Par contre je pense que vous vous trompez de forum concernant le SGBD car SQL Server n'autorise pas ce genre de syntaxe.Code:where x = y
MySQL par contre semble l'autoriser.
Vous êtes sur que vous ne confondez pas avec "ORDER BY 1" qui, sur certains SGBD (tous ?), permet de dire que le ORDER BY est fait sur la première colonne du SELECT.
where 1 ??
ca doit générer une erreur de syntaxe déjà, je pense que le plus proche c'est where 1=1 pour avoir une clause tjrs vrai, et d'ailleurs qui peut être remplacer par rien!!
Une discusion du blog MySQL:
http://www.developpez.net/forums/d27...ion-where-1-a/