Данный урок - продолжение предыдущей темы про работу с базами данных SQL. Сейчас мы с вами научимся сортировать записи, ограничивать их количество, подсчитывать их, а также реализовывать поиск.

ORDER BY - сортировка

С помощью команды ORDER BY можно сортировать строки результата.

Выберем из нашей таблицы workers всех работников и отсортируем их по возрасту:

<?php
	//В $data строки будут отсортированы по возрасту от меньшего к большему:
	$query = "SELECT * FROM workers WHERE id>0 ORDER BY age";
?>

Если мы хотим обратный порядок сортировки, то следует написать:

<?php
	//В $data строки будут отсортированы по возрасту от большего к меньшего:
	$query = "SELECT * FROM workers WHERE id>0 ORDER BY age DESC";
?>

LIMIT — ограничение количества

С помощью команды LIMIT мы можем ограничить количество строк в результате.

В следующем примере ограничим количество строк до двух:

<?php
	//В $data будет только две первых строки:
	$query = "SELECT * FROM workers WHERE id>0 LIMIT 2";
?>

Однако, это еще не все!

С помощью LIMIT можно выбрать несколько строк из середины результата!

В примере ниже мы выберем со второй строки, 5 штук:

<?php
	//В $data будут строки со второй, пять штук:
	$query = "SELECT * FROM workers WHERE id>0 LIMIT 2,5";
?>

LIMIT и ORDER вместе:

<?php
	//В $data будут строки со вторую, 5 штук, отсортированные по убыванию id
	$query = "SELECT * FROM workers WHERE id>0 ORDER BY id DESC LIMIT 2,5";
?>

Команда COUNT — считаем количество

С помощью команды COUNT можно подсчитать количество строк в выборке.

Синтаксис:

<?php
	//В $result будет лежать количество строк:
	$query = "SELECT COUNT(*) as count FROM workers WHERE id>0"; 
	$result = mysqli_query($link, $query) or die( mysqli_error($link) );
	$count = mysqli_fetch_[$result];

	//В $count будет лежать массив 'count'=>кол-во:
	var_dump($count);
?>

Обратите внимание на распространенную ошибку с COUNT: конструкцию COUNT(*) следует писать слитно, без всяких пробелов, иначе не будет работать.

Команда LIKE - реализуем поиск

С помощью команды LIKE (англ. подобный) можно реализовать поиск. Посмотрите пример использования с комментарием:

<?php
	//ВЫБРАТЬ все ИЗ таблицы ГДЕ имя ПОДОБНО любой_строке_заканчивающейся_на_я
	$query = "SELECT * FROM workers WHERE name LIKE '%я'";

	/*
		Результатом будет Петя, Вася и Коля
		(если они еще уцелели после урока с DELETE).
	*/
?>

Подробнее о возможностях этой команды смотрите здесь: LIKE.

Кавычки ``

Обратите внимание на такой нюанс: следующий запрос работать не будет, так как имя таблицы from совпадает с командой FROM:

<?php
	$query = "SELECT * FROM from";
?>

В таких случаях проблемные слова следует брать в косые кавычки, вот так:

<?php
	$query = "SELECT * FROM `from`";
?>