Руководство по языку программирования PHP
 

PCRE
 

PHP и mysql

Сортировка данных в sql запросе.

Довольно часто требуется отсортировать в sql запросе данные по тому или иному столбцу. Такая сортировка осуществляется при помощи конструкции order by.

Чтобы показать работу этой конструкции на примерах создадим таблицу auto.

id
model
year
1 Audi 2005
2 Volvo 2002
3 Fiat 2003
4 Ford 2005
5 Alfa Romeo 2005

Пример 1:


$connection = new mysqli("localhost","root","",'mybase');
$query = "select * from auto order by year";
$result = $connection->query($query);
while($row = mysqli_fetch_array($result))
{
echo "Модель:".$row['model']." ; ";
echo "Год:".$row ['year']."
";
}

?>

Результат:

Модель:Ford ; Год:2002
Модель:Fiat ; Год:2003
Модель:Audi ; Год:2005
Модель:Volvo ; Год:2005
Модель:Alfa Romeo ; Год:2005

Пример 2:

Сортировку можно производить сразу по нескольким полям


$connection = new mysqli("localhost","root","",'mybase');
$query = "select * from auto order by year, model ";
$result = $connection->query($query);
while($row = mysqli_fetch_array($result))
{
echo "Модель:".$row['model']." ; ";
echo "Год:".$row ['year']."
";
}

?>

Результат:

Модель:Ford ; Год:2002
Модель:Fiat ; Год:2003
Модель:Alfa Romeo ; Год:2005
Модель:Audi ; Год:2005
Модель:Volvo ; Год:2005

Пример 3:

Для сортировки в обратном порядке используется ключевое слово desc


$connection = new mysqli("localhost","root","",'mybase');
$query = "select * from auto order by year desc";
$result = $connection->query($query);
while($row = mysqli_fetch_array($result))
{
echo "Модель:".$row['model']." ; ";
echo "Год:".$row ['year']."
";
}

?>

Результат:

Модель:Audi ; Год:2005
Модель:Volvo ; Год:2005
Модель:Alfa Romeo ; Год:2005
Модель:Fiat ; Год:2003
Модель:Ford ; Год:2002

Пример 4:

Если использовать конструкцию order by и limit, то можно получить строку с максимальным значением по какому либо полю. Limit ограничивает количество возвращаемых данных.


$connection = new mysqli("localhost","root","",'mybase');
$query = "select * from auto order by year desc limit 1";
$result = $connection->query($query);
while($row = mysqli_fetch_array($result))
{
echo "Модель:".$row['model']." ; ";
echo "Год:".$row ['year']."
";
}

?>

Результат:

Модель:Audi ; Год:2005

Таким же образом можно получить и минимальное значение, для этого следует опустить ключевое слово desc

Статьи по теме "Секреты вебмастера"

 

- Создание базы данных
- Создание таблиц
- Индексы в mysql
- Добавление данных
- Загрузка данных из файла
- Выборка данных
- Сортировка данных в sql запросе
- Использование функций в sql запросе
- Группировка данных
- Объединение sql запросов
- Сохранение sql запроса в файл
- Удаление данных
- Обновление данных
- Добавление и удаление столбцов
- Перестановка столбцов
- Изменение типов столбцов
- Переименование названия таблицы и столбцов
- Добавление и удаление индексов