MySQL BIT_COUNT () функция
Функция BIT_COUNT ()
MySQL BIT_COUNT () возвращает количество битов, установленных в аргументе.
Синтаксис:
BIT_COUNT (N)
Где N - целое число
Пример: функция MySQL BIT_COUNT ()
Следующая инструкция MySQL вернет количество битов для указанных чисел в аргументе.
Код:
SELECT BIT_COUNT(8),BIT_COUNT(24),BIT_COUNT(28),BIT_COUNT(255);
Пример вывода:
mysql> SELECT BIT_COUNT (8), BIT_COUNT (24), BIT_COUNT (28), BIT_COUNT (255); + -------------- + --------------- + --------------- + - -------------- + | BIT_COUNT (8) | BIT_COUNT (24) | BIT_COUNT (28) | BIT_COUNT (255) | + -------------- + --------------- + --------------- + - -------------- + | 1 | 2 | 3 | 8 | + -------------- + --------------- + --------------- + - -------------- + 1 ряд в наборе (0,01 с)
PHP скрипт
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>php mysql examples</title>
</head>
<body>
<?php
echo "<h2>PHP MySQL BIT_COUNT() example : </h2>";
echo "<table border='1' style='border-collapse: collapse;border-color: silver;'>";
echo "<tr style='font-weight: bold;'>";
echo "<td width='100' align='center'>BIT_COUNT(8)</td><td width='100' align='center'>BIT_COUNT(24)</td>
<td width='100' align='center'>BIT_COUNT(28)</td><td width='100' align='center'>BIT_COUNT(255)</td>";
echo "</tr>";
include("../dbopen.php");
$result = mysql_query("SELECT BIT_COUNT(8),BIT_COUNT(24),BIT_COUNT(28),BIT_COUNT(255)");
while($row=mysql_fetch_array($result))
{
echo "<tr>";
echo "<td align='center' width='200'>" . $row["BIT_COUNT(8)"] . "</td>";
echo "<td align='center' width='200'>" . $row["BIT_COUNT(24)"] . "</td>";
echo "<td align='center' width='200'>" . $row["BIT_COUNT(28)"] . "</td>";
echo "<td align='center' width='200'>" . $row["BIT_COUNT(255)"] . "</td>";
echo "</tr>";
}
echo "</table>";
?>
</body>
</html>
Пример - 2
Следующая инструкция MySQL вернет количество битов для указанных аргументов.
Код:
SELECT BIT_COUNT(b'1000'),BIT_COUNT(b'11000'),BIT_COUNT(b'11111111');
Пример вывода:
mysql> SELECT BIT_COUNT (b'1000 '), BIT_COUNT (b'11000'), BIT_COUNT (b'11111111 '); + -------------------- + --------------------- + ------ ------------------ + | BIT_COUNT (b'1000 ') | BIT_COUNT (b'11000 ') | BIT_COUNT (b'11111111 ') | + -------------------- + --------------------- + ------ ------------------ + | 1 | 2 | 8 | + -------------------- + --------------------- + ------ ------------------ + 1 ряд в наборе (0,00 сек)
Подсчитайте количество дней в месяце, когда пользователь посещал веб-страницу
В следующем примере мы использовали функции и операторы группы битов для вычисления количества дней в месяце, которые пользователь посещал веб-страницу. Пример таблицы содержит значения год-месяц-день, представляющие посещения пользователями страницы. Вот структура таблицы с некоторыми необработанными данными:
mysql> CREATE TABLE table1 (год ГОД (4), месяц INT (2) НЕПРАВИЛЬНЫЙ ZEROFILL, день INT (2) НЕПИСАННЫЙ ZEROFILL); Запрос в порядке, затронуто 0 строк (0,48 с) mysql> INSERT table1 VALUES (2012, 1, 1), (2012, 1, 20), (2012, 1, 30), (2012, 2, 2), (2012, 2, 24), (2012, 2, 24); Запрос в порядке, затронуто 6 строк (0,22 с) mysql> SELECT * FROM table1; + ------ + ------- + ------ + | год | месяц | день | + ------ + ------- + ------ + | 2012 | 01 | 01 | | 2012 | 01 | 20 | | 2012 | 01 | 30 | | 2012 | 02 | 02 | | 2012 | 02 | 24 | | 2012 | 02 | 24 | + ------ + ------- + ------ + 6 рядов в наборе (0,00 сек)
Используйте следующий запрос, чтобы определить, сколько разных дней в каждом месяце происходят эти посещения. Запрос вычисляет, сколько разных дней появляется в таблице для каждой комбинации год-месяц, с автоматическим удалением повторяющихся записей.
mysql> ВЫБРАТЬ год, месяц, BIT_COUNT (BIT_OR (1 << день)) AS дней ОТ таблицы1 GROUP BY год, месяц; + ------ + ------- + ------ + | год | месяц | дни | + ------ + ------- + ------ + | 2012 | 01 | 3 | | 2012 | 02 | 2 | + ------ + ------- + ------ + 2 ряда в наборе (0,03 сек)
Предыдущая: UNCOMPRESSED_LENGTH ()
Далее: BITWISE И
Новый контент: Composer: менеджер зависимостей для PHP , R программирования