Função MySQL BIT_XOR()

Resumo : neste tutorial, você aprenderá como usar a BIT_XORfunção MySQL para realizar um XOR bit a bit nos valores de uma coluna de uma tabela.

Introdução à função MySQL BIT_XOR

A função é uma função agregada que executa uma operação bit a bit em valores em uma coluna de uma tabela.BIT_XOR()XOR

Aqui está a sintaxe da BIT_XOR()função:

SELECT BIT_XOR(column_name)
FROM table_name;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Se column_namenão tiver valor, retornará BIT_XORum resultado onde todos os bits serão definidos como zero. Além disso, o resultado terá o mesmo número de bits que os valores de entrada.

O bit a bit XORpega strings de dois bits com o mesmo comprimento e executa uma operação lógica OR exclusiva em cada par de bits correspondentes. Ele retorna 1 se apenas um dos bits for 1 e 0 se ambos os bits forem 0 ou ambos os bits forem 1.

Por exemplo, o seguinte mostra como executar uma XORoperação bit a bit nos valores de bit 0101 e 0011, que resulta em 0110.

0101 (decimal 5)
0011 (decimal 3)
0110 (decimal 6)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Exemplo de função MySQL BIT_XOR

Primeiro, crie uma nova tabela chamada devicesque armazena os sinalizadores de status binários para dispositivos eletrônicos:

CREATE TABLE devices (
    device_id INT PRIMARY KEY,
    status_flags INT
);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Nesta tabela, device_ididentifica exclusivamente cada dispositivo e status_flagsarmazena os sinalizadores de status do dispositivo como valores binários.

Segundo, insira três linhas na devicestabela:

INSERT INTO devices (device_id, status_flags)
VALUES
    (1, 6),   -- Binary: 0110
    (2, 3),   -- Binary: 0011
    (3, 5);   -- Binary: 0101Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Terceiro, encontre os sinalizadores de status exclusivos entre um grupo de dispositivos usando a BIT_XORfunção:

SELECT 
  BIT_XOR(status_flags) AS exclusive_flags 
FROM 
  devices 
WHERE 
  device_id IN (1, 2, 3);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+-----------------+
| exclusive_flags |
+-----------------+
|               0 |
+-----------------+Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

O resultado é zero, indicando que não há sinalizadores de status comuns entre os dispositivos. Em outras palavras, cada dispositivo tem seu status único.

Resumo

  • Use BIT_XOR()a função MySQL para realizar uma operação XOR bit a bit nos valores de uma coluna de uma tabela.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *