Mysql
 sql >> Database >  >> RDS >> Mysql

Cosa sono tutti quegli operatori SQL in Laravel?

Proprio come altri commentatori hanno menzionato, quelli sono operatori bit a bit. Gli operatori bit per bit di PHP sono documentati qui:http://php.net/manual/ it/lingua.operatori.bitwise.php

Esempi

& è un E bit per bit operatore.

10 e 10 =10 (tutte le rappresentazioni decimali). Come? 10 è 1010 binario.

    1010
and 1010
--------
    1010

Si noti che il risultato è 1 solo quando sia il numero superiore che quello inferiore nella stessa colonna sono 1.

Il modo in cui PHP lo scrive:

<?php
echo 10 & 10;
?>
Result: 10

Qual è l'uso pratico per esso? Facciamo un esempio:ci sono 4 serie di doppie porte. Entrambe le porte devono aprirsi contemporaneamente per far passare una persona. Alla porta aperta viene assegnato il numero 1. Alla porta chiusa viene assegnato il numero 2.

1010 significa che la prima porta è aperta, la seconda è chiusa, la terza è aperta, la quarta è chiusa. Quando tutte le porte sono chiuse, apparirebbero così:

0000  <-- first set of doors
0000  <-- second set of doors

Per consentire a qualcuno di passare attraverso la porta più a sinistra, le porte dovrebbero essere così:

0001
0001

Va tutto bene, ma c'è un modo più veloce per annotarlo. Operatore bit a bit &. Facciamo e tra entrambe le porte e otteniamo un risultato di 1. Quindi, se i dati sono archiviati come 1, sappiamo che le porte più a sinistra erano aperte.

Per aprire la porta più a sinistra, la combinazione dovrebbe essere:

1000
1000

Il risultato dell'operatore bit per bit è decimale 8. Utilizzare calcolatrice come la uno su miniwebtool per eseguire un po' di matematica.

D'altro canto, poiché le porte si aprono e si chiudono tutto il giorno, è possibile registrare quando entrambe le porte di una qualsiasi delle 4 serie di porte erano aperte. È solo una risposta prolissa a forse una semplice domanda.