-3
votes

Mysql - où dans () - obtenir toutes les données

J'ai cette requête: Sélectionnez * à partir de données où ID dans (1,2,3);

J'aimerais savoir s'il est possible de modifier une valeur d'argumentation pour obtenir toutes les lignes de la table. Quelque chose comme: xxx

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.


2 commentaires

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


3 Réponses :


0
votes

Vous ne pouvez pas avoir dans 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 ou 1 ): xxx


0 commentaires

1
votes

Vous pouvez essayer l'inverse de votre requête.

SELECT * FROM data WHERE ID not IN(-1);


0 commentaires

1
votes

Je pense à une approche suivante:

SELECT * FROM data WHERE ID IN(SELECT ID FROM data);


0 commentaires