2010-08-25 4 views
0

Si je comprends bien, l'interprétation pré-MySQL 5.0.3 du type de données BIT signifiait qu'il pouvait être utilisé comme une série de drapeaux? Si tel est le cas, je peux en voir des utilisations pratiques dans MySQL mais j'imagine que cela n'aurait pas été aussi efficace que d'utiliser SET.MySQL: Exemple d'utilisation du type de données BIT

Même si ce qui précède n'est pas le cas, j'ai beaucoup de mal à comprendre comment l'implémentation actuelle du type de données BIT peut être appliquée dans une base de données. Si quelqu'un est en mesure de fournir une explication simplifiée et un exemple d'où il serait applicable, je serais reconnaissant.

J'ai recherché des descriptions et des exemples ailleurs, mais je n'ai pas réussi à trouver des exemples applicables uniquement aux bases de données.

Répondre

0

Supposons que vous avez la ligne avec le champ de la propriété

Propriétés définies comme

1 - Has property 1 
2 - Has property 2 
4 - Has property 3 
8 - Has property 4 

propriétés Assigner 1 et 2 (soit seulement 1 et 2 autres seront nettoyés)

set status = status & 3 

add propriété 3

set status = status | 4 

supprimer la propriété 1

set status = status | 14 

Sélectionnez les lignes avec des propriétés 1 et 2

SELECT .. Où (Propriétés & 3) = 3

Sélectionnez les lignes où les propriétés 1 ou 2

SELECT .. OERE (Propriétés & 1) = 1 OU (Propriétés & 2) = 2

+0

Merci, je suis une partie de ça mais j'ai peur d'avoir besoin d'une description plus basique si c'est possible? – caseyc

+0

OK. Les trois sites suivants (plus ou moins dans l'ordre) ont éclairci cela pour moi. Je n'étais pas au courant des opérateurs bit à bit et du transfert de bits: http://www.blackwasp.co.uk/FlagsAttribute.aspx http://stackoverflow.com/questions/1936436/bit-manipulation-and-mysql-retrieval- in-php http://www.php.net/manual/fr/language.operators.bitwise.php – caseyc

Questions connexes