SQL - Type Integer - Détecter les bits
Avec SQL, je voudrais détecter si un bit est avec une colonne de type integer type (MySQL)?
Comment pourrais-je aller à ce sujet?
En fait, je cherche à détecter si un bit est sur, si il l'est, puis de les ignorer.
Je suis en utilisant quelque chose comme ceci maintenant :
WHERE (column & 2) != 2
Êtes-vous parler un peu de colonne ou une colonne de type integer? Qu'entendez-vous par? Veuillez reformuler la question.
La base de données que vous utilisez?
Au niveau du bit drapeaux sont très bien pour les enums 3GLs mais un L4G tels que SQL qui fonctionne le mieux avec les données relationnelles c'est à dire les relations de tuples avec des attributs.
La base de données que vous utilisez?
Au niveau du bit drapeaux sont très bien pour les enums 3GLs mais un L4G tels que SQL qui fonctionne le mieux avec les données relationnelles c'est à dire les relations de tuples avec des attributs.
OriginalL'auteur RoR | 2011-08-23
Vous devez vous connecter pour publier un commentaire.
Dire que vous êtes la vérification de la 3ème peu alors...
Cela renvoie d'un binaire (1 ou 0) pour que le morceau en question (dans ce cas, le troisième) est activée ou désactivée pour chaque ligne dans la colonne 'bits'.
à l'aide de 2^x pour la xème bits au lieu de 8.
par exemple, pour vérifier la 5ème peu on pourrait utiliser 2^5 = 32
Cependant, c'est inutilement compliqué. Utilisez simplement des valeurs booléennes dans plusieurs colonnes et il va rendre les choses beaucoup plus facile.
L'idée de base est que le '&' opérateur détermine le nombre de bits qui sont sur " on " dans deux de ses arguments. (Bits & 8 = 8) détermine si 8 (qui est juste la troisième bit) et de la colonne 'bits' ont les bits correspondants. Le résultat de la requête dans son ensemble est une série de Binaire résultats si le troisième bit est sur.
OriginalL'auteur PyKing
Utilisation
&
, le au niveau du bit ET de l'opérateur:OriginalL'auteur BradC
SQL prend en charge la norme bits les opérateurs:
OriginalL'auteur Michael Fredrickson
Pour mysql, vous pouvez utiliser le bit-wise
AND
opérateur&
avec un masque de bitsPar exemple, pour obtenir une valeur de type boolean
true
si le bit 2 (en comptant à partir de 0) est définie pour colonne1, utilisez ceci:cela fonctionne pour de multiples vérifications des bits, par exemple pour vérifier que les deux bits 0 et 2 sont définies:
OriginalL'auteur Bohemian
Vous devriez tag de la question de la base de données de la plateforme que vous utilisez.
Si c'est SQL Server 2008, vous pouvez utiliser les opérateurs sur les bits (plus précisément au niveau du bit ou égal) à comparer à un entier dont les bits sont à le modèle qui vous intéresse dans les essais de: http://msdn.microsoft.com/en-us/library/cc627409.aspx
Noter que par l'emballage des entiers de cette façon, vous êtes susceptibles d'empêcher l'utilisation de tout les indices sur ces colonnes.
OriginalL'auteur Chris Shain
Je crois que ce sera vous aider à obtenir ce que vous voulez:
SQL de manipulation de bits
OriginalL'auteur Oscar Gomez
En TSQL, 1 = vrai, 0 = faux.
Dans MS Access, -1 = true, 0 = faux.
...
Peut-être que quelqu'un pourra remplir pour les autres dialectes.
Si vous êtes à l'interprétation d'un bit dans une couche d'application, vous devriez être en mesure d'utiliser une fonction de conversion (par exemple, en vb on pourrait dire
IF convert.toboolean(myValue) THEN...
à interpréter vrai ou faux.OriginalL'auteur Chains