©SQL :: Manager
HomeProgramm-InformationenTechnische DetailsKostenloser DownloadKaffee für den Autor
Netzwelt
SQL-FunktionMySQLMariaDB

Die BIT_XOR SQL-Funktion in MySQL und MariaDB - Bitweises eXclusiv-ODER (XOR)

BIT_XORSyntax:BIT_XOR(Ausdruck oder Spalte)
Rückgabe-Wert:BIGINT
Funktions-Typ:Aggregat-Funktion, Window-Funktion
Funktions-Beschreibung

Die SQL-Funktion BIT_XOR() gibt das bitweise eXclusiv-ODER (XOR) aller Bits in "Ausdruck oder Spalte" zurück.

Die Berechnung erfolgt mit 64-Bit Genauigkeit (BIGINT).

Bei der Berechnung von Zeichenketten-Argumenten gibt die Funktion 0 zurück.

Die Verwendung von einer DISTINCT-Klausel führt zu einem Fehler.

Bei ENUM-Feldern geschieht die Berechnung aus den Positionen der Werte in ihren Listen.

Bei SET-Feldern werden die Binär-Positionen der Werte in ihren Listen zur Berechnung verwendet = POW(2, Position-1).

Als Aggregatfunktion kann die BIT_XOR()-Funktion mit einer GROUP BY-Klausel verwendet werden.

BIT_XOR() kann als Fensterfunktion verwendet werden.

Die Funktion BIT_XOR() gibt 0, wenn kein Ergebnis gefunden wurde oder "Ausdruck oder Spalte" NULL ist.

SQL Beispiele für die BIT_XOR-Funktion

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

DROP TABLE IF EXISTS `test_table`;
    
CREATE TABLE `test_table` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) DEFAULT NULL,
  `type` enum('First','Second','Third','Last'DEFAULT NULL,
  `set` set('First','Second','Third','Last'DEFAULT NULL,
  `num1` int(11) NOT NULL DEFAULT 0,
  `num2` int(11) NOT NULL DEFAULT 0,
  PRIMARY KEY (`id`),
  UNIQUE KEY `name` (`name`)
ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1;

INSERT INTO `test_table` (`id`,`name`,`type`,`set`,`num1`,`num2`VALUES 
(1,'Art 1','First','Last',1,7),
(2,'Art 2','Second','First,Last',3,7),
(3,'Art 3','Second','Second,Last',5,7),
(4,'Art 4','Third','First,Second,Last',5,7),
(5,'Art 5','Last','First,Last',7,15),
(6,'Art 6','First','First,Last',7,15),
(7,'Art 7','Third','First,Third,Last',9,15),
(8,'Art 8','Last','Second,Third,Last',9,15);

select * from `test_table`;

select BIT_XOR(name) from test_table;

select BIT_XOR(num1),BIT_XOR(num2),BIT_XOR(`type`),BIT_XOR(`set`from test_table;
select BIT_XOR(num1),BIT_XOR(num2),BIT_XOR(`type`),BIT_XOR(`set`from test_table where `type`='third';

select bin(BIT_XOR(num1)),bin(BIT_XOR(num2)) from test_table where id>8;

/* as Window function */

SELECT name, `type`, num1, BIT_XOR(num2) 
  OVER (PARTITION BY `type`AS `bit_xor` FROM test_table;
  
select BIT_XOR(null), bin(BIT_XOR(null));

id
name
type
set
num1
num2
int(11)varchar(20) LATIN1enum LATIN1set LATIN1int(11)int(11)
1Art 1FirstLast17
2Art 2SecondFirst,Last37
3Art 3SecondSecond,Last57
4Art 4ThirdFirst,Second,Last57
5Art 5LastFirst,Last715
6Art 6FirstFirst,Last715
7Art 7ThirdFirst,Third,Last915
8Art 8LastSecond,Third,Last915
bit_xor(name)
bigint(21)
0
bit_xor(num1)
bit_xor(num2)
bit_xor(`type`)
bit_xor(`set`)
bigint(21)bigint(21)bigint(21)bigint(21)
2003
bit_xor(num1)
bit_xor(num2)
bit_xor(`type`)
bit_xor(`set`)
bigint(21)bigint(21)bigint(21)bigint(21)
12806
bin(bit_xor(num1))
bin(bit_xor(num2))
varchar(64) BINARYvarchar(64) BINARY
00
name
type
num1
bit_xor
test_table
varchar(20) LATIN1
test_table
enum LATIN1
test_table
int(11)

bigint(21)
Art 6First78
Art 1First18
Art 3Second50
Art 2Second30
Art 4Third58
Art 7Third98
Art 8Last90
Art 5Last70
BIT_XOR(null)
bin(BIT_xOR(null))
bigint(21)varchar(64) BINARY
00
Die Beispiele wurden mit dem MyWAY SQL-Manager erstellt: Download

Verwendung der BIT_XOR() Funktion in MySQL und MariaDB-Datenbanken

In MySQL und MariaDB wird die BIT_XOR()-Funktion verwendet, um eine bitweise XOR-Operation für eine Reihe von Werten durchzuführen und das Ergebnis als ganze Zahl zurückzugeben, was in verschiedenen Anwendungen nützlich sein kann, beispielsweise beim Umdrehen oder Umschalten bestimmter Bits, beim Berechnen von Prüfsummen oder beim Implementieren benutzerdefinierter Logik basierend auf binären Darstellungen. Dabei arbeitet die Funktion mit ganzen Zahlen und behandelt die Eingabewerte als binäre Darstellungen.

Bitweise Operationen und die Arbeit mit Binärwerten mit dieser Funktion beinhalten unter anderem Anwendungsfälle, wie Umdrehen oder Umschalten bestimmter Bits innerhalb eines Binärwerts. Durch XOR-Verknüpfung von Werten mit bestimmten Masken oder Bitmuster können Bits invertiert werden, die der Maske oder dem Muster entsprechen. Weiter können Prüfsummen oder Hashwerte für Binärdaten berechnet werden, um die Einzigartigkeit oder Integrität von Daten darzustellen. Zudem kann die Funktion in benutzerdefinierter Logik oder Berechnungen basierend auf binären Darstellungen verwendet werden, um bestimmte Verhaltensweisen oder Ergebnisse zu erzielen.
BIT_COUNTBIT_LENGTHBIT_ORBIT_XORCASTCEILCEILING

Weitere MySQL und MariaDB SQL Aggregat-Funktionen

ANY_VALUEANY_VALUE(Spalte)
Mehr zur ANY_VALUE-Funktion

AVGAVG(Ausdruck oder Spalte)
Mehr zur AVG-Funktion

BIT_ANDBIT_AND(Ausdruck oder Spalte)
Mehr zur BIT_AND-Funktion

BIT_ORBIT_OR(Ausdruck oder Spalte)
Mehr zur BIT_OR-Funktion

COUNTCOUNT(Ausdruck oder Spalte)
Mehr zur COUNT-Funktion

GROUP_CONCATGROUP_CONCAT([DISTINCT] Ausdruck [, Ausdruck ...] [ORDER BY ... [ASC | DESC]] [SEPARATOR ...] [LIMIT ...])
Mehr zur GROUP_CONCAT-Funktion

JSON_ARRAYAGGJSON_ARRAYAGG(Ausdruck oder Spalte)

JSON_OBJECTAGGJSON_OBJECTAGG(Ausdruck oder Spalte)

MAXMAX(Ausdruck oder Spalte)
Mehr zur MAX-Funktion

MINMIN(Ausdruck oder Spalte)
Mehr zur MIN-Funktion

SUMSUM(Ausdruck oder Spalte)
Mehr zur SUM-Funktion

STDSTD(Ausdruck oder Spalte)
Mehr zur STD-Funktion

STDDEVSTDDEV(Ausdruck oder Spalte)
Mehr zur STDDEV-Funktion

STDDEV_POPSTDDEV_POP(Ausdruck oder Spalte)
Mehr zur STDDEV_POP-Funktion

STDDEV_SAMPSTDDEV_SAMP(Ausdruck oder Spalte)
Mehr zur STDDEV_SAMP-Funktion

VAR_POPVAR_POP(Ausdruck oder Spalte)
Mehr zur VAR_POP-Funktion

VAR_SAMPVAR_SAMP(Ausdruck oder Spalte)
Mehr zur VAR_SAMP-Funktion

VARIANCEVARIANCE(Ausdruck oder Spalte)
Mehr zur VARIANCE-Funktion

Numerische FunktionenZeichenketten-FunktionenReguläre AusdrückeDatum und Zeit-Funktionen
Vergleichs-FunktionenVerschlüsselung & KomprimierungKonvertierungs-FunktionenNULL-Funktionen
Aggregat-FunktionenWindow-FunktionenJSON-FunktionenGeometrische Funktionen
Sequenz-FunktionenInformations-FunktionenDynamische Tabellen-SpaltenSonstige Funktionen
Weitere Informationen zur SQL-Funktion BIT_XOR: mysql.com und mariadb.com
Aktualisiert: 17.09.2023ImpressumKontaktGeschäftsbedingungenDatenschutz & CookiesUpdatesSitemapFacebookLinkedinTwitterStatistics©2020-2024 Heino Cunze-Fischer