Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Bitweise MySQL-Operationen, Bloom-Filter

Erstellen Sie eine Tabelle mit int-Spalte (verwenden Sie diesen Link um die richtige Int-Größe auszuwählen). Speichern Sie Zahlen nicht als Folge von 0 und 1.

Für Ihre Daten sieht das so aus:

number

154
53
148
38
59
106

und Sie müssen alle Einträge finden, die mit 24.

übereinstimmen

Dann können Sie eine Abfrage wie

ausführen
SELECT * FROM test WHERE number & 24 = 24

Wenn Sie in Ihrer Anwendung die Umwandlung in 10 Basiszahlen vermeiden möchten, können Sie sie an mysql übergeben:

INSERT INTO test SET number = b'00110101';

und so suchen

SELECT bin(number) FROM test WHERE number & b'00011000' = b'00011000'