MySQL Операторы левого и правого сдвига
Оператор левого сдвига
Оператор сдвига MySQL влево возвращает 64-разрядное целое число без знака. Возвращаемое значение будет равно нулю, если число сдвигов больше или равно ширине 64-разрядного числа без знака. Он сдвигает номер BIGINT влево.
Синтаксис:
<<
Пример: оператор MySQL Left Shift
Следующая инструкция MySQL вернет целое число без знака для чисел, указанных в аргументе.
SELECT 2 <<8;
Пример вывода:
mysql> SELECT 2 << 8; + -------- + | 2 << 8 | + -------- + | 512 | + -------- + 1 ряд в наборе (0,00 сек)
Оператор MySQL Right Shift
Оператор сдвига вправо MySQL возвращает 64-разрядное целое число без знака. Возвращаемое значение будет нулевым, если счетчик сдвига больше или равен ширине 64-разрядного числа без знака. Он сдвигает номер BIGINT вправо.
Синтаксис
>>
Пример: оператор MySQL Right Shift
Следующая инструкция MySQL вернет целое число без знака для чисел, указанных в аргументе.
SELECT 2 >>8;
Пример вывода:
mysql> SELECT 2 >> 8; + -------- + | 2 >> 8 | + -------- + | 0 | + -------- + 1 ряд в наборе (0,00 сек)
Извлечение октетов из 32-разрядных беззнаковых сохраненных IP-адресов
Если вы храните свои ip-адреса как 32-разрядное целое число без знака с помощью функции INET_ATON (), вы можете использовать побитовые операторы для возврата IP-адреса из его числового значения. Вот запрос:
mysql> SELECT * FROM ipdata; + ------------ + | IPaddress | + ------------ + | 2130706433 | | 2921711528 | | 3056763172 | + ------------ + 3 ряда в наборе (0,00 сек) mysql> SELECT ipaddress, (ipaddress >> 24) в качестве FirstOctet, (ipaddress >> 16 << 16) - (ipaddress >> 24 << 24) >> 16 как SecondOctet, (ipaddress >> 8 << 8) - (ipaddress >> 16 << 16) >> 8 как ThirdOctet, ipaddress- (ipaddress >> 8 << 8) как FourthOctet ОТ ИПДАТЫ; + ------------ + ------------ + ------------- + --------- --- + ------------- + | IPaddress | FirstOctet | SecondOctet | ThirdOctet | Четвертый октет | + ------------ + ------------ + ------------- + --------- --- + ------------- + | 2130706433 | 127 | 0 | 0 | 1 | | 2921711528 | 174 | 37 | 199 | 168 | | 3056763172 | 182 | 50 | 129 | 36 | + ------------ + ------------ + ------------- + --------- --- + ------------- + 3 ряда в наборе (0,02 сек)
Примечание. Вы можете использовать функции INET_NTOA () для получения того же результата.
Предыдущий: BITWISE XOR
Далее: Функции полнотекстового поиска MySQL
Новый контент: Composer: менеджер зависимостей для PHP , R программирования