Дата публикации : 2016.11.15
Автор:Виноградов Александр
Рейтинг статьи:
Как выбрать самую старую и самую свежую запись из MySql
Сегодня возникла задача : выбрать самую старую и самую свежую запись из БД.
Произвольное поле - необязательное поле, у Вас его может не быть
UPDATE_TIME - поле благодаря которому становится возможна выборка самой старой и самой свежей записи
Таблица из которой делаем выборку
CREATE TABLE IF NOT EXISTS имя_таблицы (
id int(8) NOT NULL AUTO_INCREMENT, /*Вариант 1 сортировка по первичному ключу см. ниже*/
tovar_id int(8) NOT NULL DEFAULT 0, /*произвольное поле*/
price float NOT NULL, /*произвольное поле*/
UPDATE_TIME date NOT NULL, /*Вариант 2 сортировка по полю с датой см. ниже*/
PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=0;
Вариант 1: сортировка по первичному ключу id
Bыбираем самую старую запись по столбцу id. Ключ id есть почти в каждой таблице
SELECT * FROM имя_таблицы order by id LIMIT 1
Bыбираем самую свежую запись
SELECT * FROM имя_таблицы order by id DESC LIMIT 1
Вариант 2: сортировка по полю с датой UPDATE_TIME
Bыбираем самую старую запись по столбцу UPDATE_TIME. Во многих таблицах есть поля с датой, называются они все по разному
SELECT * FROM имя_таблицы order by UPDATE_TIME LIMIT 1
Bыбираем самую свежую запись
SELECT * FROM имя_таблицы order by UPDATE_TIME DESC LIMIT 1
Выдача в виде массива
Array
(
/*относится ко 1 запросу наверху самое старое значение*/
[0] => Array
(
[id] => 447
[tovar_id] => 246
[price] => 13500
[UPDATE_TIME] => 2013-11-08
)
/*относится ко 2 запросу наверху самое свежее значение*/
[1] => Array
(
[id] => 1825
[tovar_id] => 246
[price] => 13400
[UPDATE_TIME] => 2013-12-25
)
)