J'ai cette requête:
J'aimerais savoir s'il est possible de modifier une valeur d'argumentation pour obtenir toutes les lignes de la table. Quelque chose comme: p> Je sais que tout ce que je dois faire est juste de supprimer "où id in (..)" "pour obtenir ce dont j'ai besoin, mais c'est une question plus théorique. p> p> Sélectionnez * à partir de données où ID dans (1,2,3); CODE>
3 Réponses :
Vous ne pouvez pas avoir dans code> faire ce que vous voulez. Je recommanderais d'avoir un deuxième paramètre à votre requête, indiquant si l'utilisateur actuel est administrateur ou non. Vous pouvez ensuite transmettre une valeur booléenne à ce paramètre (
0 code> ou
1 code>):
Vous pouvez essayer l'inverse de votre requête.
SELECT * FROM data WHERE ID not IN(-1);
Je pense à une approche suivante:
SELECT * FROM data WHERE ID IN(SELECT ID FROM data);
La raison est que mon application a une fonction qui renvoie une matrice d'identifiant autorisée pouvant actuellement être connectée à l'utilisateur. Mais si l'utilisateur est administrateur, il peut voir tous les identifiants. Actuellement, l'application renvoie une matrice avec la plage de valeur (1, 9999) 'qui est si mauvaise. Ces données sont ensuite utilisées dans la requête MySQL.
Ignorer la partie ID dans la clause WHERE et uniquement la recherche d'utilisateurs actifs