Вопрос по организации сортировки (ORDER By)

igortik

Новичок
Вопрос по организации сортировки (ORDER By)

Есть таблица, где периодически одному из полей (`top`) ставится значение либо 1, либо 0.
На данный момент сортировка идет по `top` , т.е.:

SELECT * FROM $table ORDER by `top` DESC;

Но стоит задача сделать так, чтобы как только мы присваиваем очередному полю `top` значение в 1, то оно тут же выходило выше всех полей в перечне.

В данном случае SELECT * FROM $table ORDER by `top` DESC нам не хватит, т.к. будет просто сортировка по top.

В скрипте я сделал так, чтобы еще при каждом обновлении менялась дата поля date.

Т.е. мне необходимо сделать выборку из базы таким образом, чтобы вышли первыми те значения, где `top`='1' и последняя дата обновления.

P.S. сортировка по дате не подходит, т.к. будут данные, где полю `top` не присваивается '1', а они обновляются (следовательно меняется и дата)
 

Beavis

Banned
Re: Вопрос по организации сортировки (ORDER By)

Автор оригинала: igortik
Но стоит задача сделать так, чтобы как только мы присваиваем очередному полю `top` значение в 1, то оно тут же выходило выше всех полей в перечне.
ну в SQL запросе ты к сожалению никак не укажешь то что одна единица как то должна быть больше другой... 1==1 как не крути
так что делай дополнительное поле по которому будет сортироваться
 

igortik

Новичок
вот как раз поле где date обновляется при обновлении информации и изменяется.......

т.е. надо показать все данные где `top`='1' и `date`='последние обновления по убыванию', а далее уже идут все с `top`='0'

Нечто вроде (неверный пример):
SELECT * FROM $table ORDER by `top`,`date` DESC

P.S. но, чтобы приоритет при выдаче был выше для `top`='1'
 
Сверху