J'ai une table appelée le Donc, j'ai les données suivantes dans le tableau: p> Fondamentalement, je souhaite récupérer le département de l'utilisateur. Donc, si le champ autorisations code> qui se compose des champs suivants: persméviste, userid, deptid, userdefault, usermanager, usernetwork code> userdefault, Usermanager, UseNetwork Code> Les valeurs peuvent être soit true code> ou false code>. P> Persmenseid, UserID, Deptid, UserDefault, Usermanager, UseNetwork
Rangée 1: 1, 1, 1, vrai, faux, faux
Rangée 2: 1, 1, 2, True, True, FALSE CODE> P> usermanager code> est défini sur true code>, je veux aussi la récupérer. P> select
* from Permissions permi
inner join Permissions permi2
on permi.UserId = permi2.UserId
where permi.UserId = 1
and permi.UBR_CH_DEFAULT = 'True' and permi.UBR_CH_MANAGER = 'True'
3 Réponses :
Si vous voulez les deux rangées, vous semblez vouloir:
select p.*
from Permissions
where p.UserId = 1 and
p.UBR_CH_DEFAULT = 'True' ;
Je veux vérifier si l'utilisateur est un gestionnaire ou un réseau d'utilisateurs. S'il en est un parmi ceux-ci, puis me renvoie les rangées.
Essayez d'utiliser l'opérateur ou code> dans votre joindre code> instruction: select
*
from Permissions permi
inner join Permissions permi2
on permi.UserId = permi2.UserId OR permi.UserManager = 'true'
where permi.UserId = 1
and permi.UBR_CH_DEFAULT = 'True' and permi.UBR_CH_MANAGER = 'True'
Vous pouvez utiliser existe et si vous voulez un utilisateur code> userid code>: si vous souhaitez vérifier n'importe quel voir le Démo . P> p> userid code>: < / p>
Disons que je veux vérifier si la valeur est true code> pour l'un des usermanager, usernetwork code>. Si l'un de ces champs est vrai, puis me renvoie cet enregistrement. Comment puis-je atteindre cela?
C'est pourquoi j'utilise ou code>: usermanager = 'true' ou usernetwork = 'true' code>. Si l'une d'entre elles est vraie, toutes les lignes de cet ID utilisateur seront retournées.
Supposons que dans le futur, j'aurai plus de champs tels que useradmin code>, userdispatcher code> .. dois-je ajouter ou code> mot-clé pour chaque colonne? Vous n'êtes pas une façon optimisée d'y parvenir?
Quel est le type de données de ces colonnes?
Le type de données est le même varchar code>. Fondamentalement, ces champs représentent certains accès code> que l'utilisateur peut avoir.
Puisque c'est Varchar, vous devez utiliser plusieurs ou code> s. Si c'était bit code>, il serait quelque chose de plus facile comme col1 + col2 + .....> 0 code>