Дата публикации : 2016.11.15
Автор: Виноградов Александр

Как выбрать самую старую и самую свежую запись из MySql

Сегодня возникла задача : выбрать самую старую и самую свежую запись из БД. 

Произвольное поле - необязательное поле, у Вас его может не быть

UPDATE_TIME - поле благодаря которому становится возможна выборка самой старой и самой свежей записи

Таблица из которой делаем выборку


CREATE TABLE 
IF NOT EXISTS имя_таблицы (
  
id int(8NOT NULL AUTO_INCREMENT,  /*Вариант 1 сортировка по первичному ключу см. ниже*/
  
tovar_id int(8NOT 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
        
)

)

Комментарии
Наверх страницы