базовый курс

ГРУППА КУРСА

Количество записей, уникальные записи

Ограничение количества записей

Результат может содержать не всю выборку, а определённое количество первых записей. Речь идёт не о первых записях таблицы, а именно о первых записях выборки. Можно сдалать любую выборку и получить её часть. Для этого в запрос нужно добавить ключевое слово LIMIT. Запрос будет выглядеть так:

SELECT * FROM таблица LIMIT количество записей

Кроме того, можно получить не первые записи выборки, а начиная с определённой записи. Для этого после слова LIMIT указывается два числа через запятую - начальная запись и количество записей. Получается такой запрос:

SELECT * FROM таблица LIMIT начальная запись, количество записей

Создадим скрипт, который получает только две первые записи выборки:

+
1
2
<?php
header('Content-type: text/html; charset=utf-8');
3
4
5
$db=mysqli_connect('localhost', 'root', '', 'mybase');
$query="SELECT * FROM users ORDER BY dif LIMIT 2";
$result=mysqli_query($db, $query);

Получение количества записей в выборке

Иногда бывает нужно узнать количество записей в выборке и больше ничего с ней делать не нужно. В такой ситуации получать саму выборку нежелательно, потому что получение данных использует ресурсы сервера. Вместо этого можно отправить запрос, содержащий ключевое слово COUNT. Результат такого запроса содержит массив в котором указано количество строк в выборке.

SELECT COUNT(*) FROM таблица

Узнаем количество записей в таблице users, в которых поле inform является пустым:

6
7
8
9
$query="SELECT COUNT(*) FROM users WHERE inform = ''";
$result=mysqli_query($db, $query);
$numbers=mysqli_fetch_row($result);
echo $numbers[0];

Уникальные записи

Можно сделать выборку, в которую попадут только записи с уникальными значениями какого-то поля. Для этого в запросе должно быть ключевое слово DISTINCT. Если в таблице есть несколько записей, в которых значения всех указанных полей совпадают, то в выборке будет только одна из этих записей. При этом, проверяются только те поля, которые есть в запросе.

SELECT DISTINCT поле1, поле2, FROM таблица

Получим выборку, состоящую из двух полей, в которой будут содержаться только уникальные записи и выведем результат на экран:

10
11
12
13
14
15
16
17
$query="SELECT DISTINCT inform, dif FROM users";
$result=mysqli_query($db, $query);
for ($i=0; $i<mysqli_num_rows($result); $i++)
  {
  $row=mysqli_fetch_array($result, MYSQLI_ASSOC);
  echo '<br>';
  print_r($row);
  }