- Ymox,
Bonjour à tous !
Je fais mumuse avec les bitmasks dans une base de données existante aujourd’hui. Outre le fait qu’ils me semblent ici mal appliqués (on ne devrait jamais avoir qu’un bit d’armé selon la logique d’utilisation), je dois extraire les enregistrements qui ont l’un ou l’autre statut, donc l’un ou l’autre bit armé. Il faut que ce soit extensible, parce que si les valeurs de l’ensemble à extraire sont définies en ce moment, je me doute que cela augmente rapidement.
Je me demandais s’il existait une (suite d’)opération(s) binaire combinables qui permette de détecter si l’un ou l’autre bit était armé ? La suite de BIT_AND()
avec des OR
(en SQL, donc pas binaires) me paraît peu optimale ni pratique…
Merci d’avance
Edit
En fait, je me focalisais trop sur le fait que quand on utilise BIT_AND()
, il faut vérifier que le résultat équivaut bien au masque qu’on a utilisé. Mais si on vérifie simplement qu’on a un masque quelconque non vide en retour, ça devrait faire le travail. En imaginant que l’on utilise des nombres, si BIT_AND(nombre, masque) == masque
permet de confirmer qu’on a exactement le masque, BIT_AND(nombre, masque) != 0
permet de savoir si le masque s’applique partiellement, ce qui me semble être ce que je recherche.