SQL - Typ Integer - bit Erkennen
Mit SQL, ich möchte erkennen, ob ein bestimmtes bit ist mit einer integer-Spalte-Typ (MySQL)?
Wie würde ich das angehen?
Grundsätzlich möchte ich erkennen, wenn ein bit eingeschaltet ist, wenn es eingeschaltet ist, dann ignorieren.
Ich bin mit so etwas wie diese jetzt :
WHERE (column & 2) != 2
Sprechen Sie über eine bit-Spalte oder eine ganze Spalte? Was meinst du mit auf? Bitte formulieren Sie die Frage.
Welche Datenbank verwenden Sie?
Bitweise flags sind gut für Enumerationen, die in 3GLs aber eine 4GL wie SQL funktioniert am besten mit relationalen Daten, d.h. Relationen, die Tupel mit den Attributen.
Welche Datenbank verwenden Sie?
Bitweise flags sind gut für Enumerationen, die in 3GLs aber eine 4GL wie SQL funktioniert am besten mit relationalen Daten, d.h. Relationen, die Tupel mit den Attributen.
InformationsquelleAutor RoR | 2011-08-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sagen, du bist zu überprüfen, ob das 3. bit dann...
Dieser gibt eine binären (1 oder 0), ob das bit in Frage (in diesem Fall das Dritte) ist auf ein oder aus für jede Zeile in der Spalte 'bits'.
mit 2^x für die xte bit statt 8.
beispielsweise zu überprüfen, wie 5. bit verwenden wir 2^5 = 32
Dies ist jedoch unnötig kompliziert. Einfach mit booleschen Werten in mehreren Spalten und es wird Dinge viel leichter machen.
Die grundlegende Idee ist, dass mit dem '&' - operator bestimmt die bits, die sind 'on' in beiden Argumenten. So (bits & 8 = 8) bestimmt, wenn 8 (das ist nur das Dritte bit) und die Spalte 'bits' die entsprechenden bits. Das Ergebnis der Abfrage als ganzes ist eine Serie von Binären Ergebnisse, wenn das Dritte bit wird auf.
InformationsquelleAutor PyKing
Verwenden
&
, die bitweise AND-operator:InformationsquelleAutor BradC
SQL unterstützt die standard-bit-Operatoren:
InformationsquelleAutor Michael Fredrickson
Für mysql verwenden, können Sie die bit-Weise
AND
Betreiber&
mit einer bit-MaskeZum Beispiel für einen booleschen
true
wenn bit 2 (gezählt von 0) setzen, column1, verwenden Sie diese:dieser Arbeit wird für mehrere bit überprüft, um beispielsweise zu prüfen, dass beide bits 0 und 2:
InformationsquelleAutor Bohemian
Sollten Sie tag die Frage für die Datenbank-Plattform, die Sie verwenden.
Wenn dies ist, SQL Server 2008, Sie könnte verwenden von bit-Operatoren (speziell bitweise oder-Verknüpfung "ist gleich") zu vergleichen, um eine ganze Zahl, deren bits gesetzt sind, um das Muster, das Sie interessiert sind bei der Prüfung für: http://msdn.microsoft.com/en-us/library/cc627409.aspx
Beachten Sie, dass durch die Verpackung zu ganzen zahlen auf diese Weise, sind Sie wahrscheinlich, die die Verwendung von beliebigen Indizes auf die Spalten.
InformationsquelleAutor Chris Shain
Ich glaube dies wird Ihnen helfen zu erreichen, was Sie wollen:
SQL-bit-manipulation
InformationsquelleAutor Oscar Gomez
In TSQL, 1 = true, 0 = false.
In MS Access, -1 = true, 0 = false.
...
Vielleicht kann mir jemand ein fill-in für die anderen Dialekte.
Wenn Sie interpretieren etwas in einer application-layer, Sie sollten in der Lage sein, verwenden Sie eine Konvertierungsfunktion (z.B. in vb könnte man sagen
IF convert.toboolean(myValue) THEN...
zu interpretieren true oder false.InformationsquelleAutor Chains