[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Выборка mysql с приоритетом выводов випов
Страницы: 1, 2
Zzepish
У меня есть вип-акции, и не вип акции. Мне нужно выводить вип-акции из всей таблицы первыми. ORDER идет по времени внесения акции в таблицу. Но есть limit.
Просто делать проверку с union?
Или можно сделать элегантней?
Пример:
SELECT....
LIMIT 0, 3

VIP
VIP
НЕ вип

SELECT....
LIMIT 1, 3

VIP
НЕ вип
Не вип


SELECT....
LIMIT 0, 1

VIP

SELECT....
LIMIT 1, 1

VIP

SELECT....
LIMIT 2, 1

Не ВИП
depp
поля опишите и по каким полям сотрировка должна быть.
Zzepish
depp
есть eventStartDate, eventEndDate, eventFreezeTime.
Если NOW()>=event startDate AND NOW()<=eventEndDate - то выводит акцию.
но! если eventFreezeTime >=NOW(), то акция считается вип.
сортировка по eventStartDate и eventFreezeTime
depp
со временем и датой не уверен, что так сработает, но попробуй:

  ORDER BY
if
( eventFreezeTime >=NOW() , 1, 0) DESC,
eventStartDate DESC/ASC
Zzepish
depp
главное - алгоритм. Со временем и датой сам разберусь)
S.Chushkin
ТС, всё зависит от цели.
Если "сделать выборку одним запросом", то пофиг union или order by - всё будет делаться через временную таблицу.
Если "быстро/эффективно", то сделать 2 запроса (скорее всего будет лучше).
Но точно не скажу, - попробуйте научный тык: сделать все варианты и сравнить. Оставить наиболее эффективный.


_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
Zzepish
depp
не сработало(
Фишка в том, что б со всей таблицы выбирало вначале випы, потом обычные.
Т.е:

вип
не вип
не вип
не вип
вип

При моем запросе выше, чтоб выдало вначале випов
Zzepish
S.Chushkin
т.е. 2 запроса в данном случае - это не плохо?
kaww
http://sqlfiddle.com/#!9/abb82/1
Игорь_Vasinsky
Order by field()

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
depp
в продолжение kaww
http://sqlfiddle.com/#!9/abb82/2/0
S.Chushkin
Цитата (Zzepish @ 2.12.2015 - 01:55)
S.Chushkin
т.е. 2 запроса в данном случае - это не плохо?

Не плохо. Как минимум исключает 1 временную таблицу.
Даст это выигрыш в эффективности или нет - не скажу. Ибо в каждом конкретном случае может быть по разному, поэтому и предложил "научный тык" - он даст точный ответ в конкретном случае.

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
Zzepish
Спасибо, ребята)
Valick
S.Chushkin, тут должен быть один запрос и дело даже не в скорости выборки.
Давайте ка проверим есть ли на форуме программмистов программисты.
Почему в данной ситуации должен быть один запрос?
А я пока "продолжу" читать книжку про сокеты...

_____________
Стимулятор ~yoomoney - 41001303250491
Zzepish
Valick
потому-что организуеться новое соединение.
Т.е. так все идет одним соединением в 1-м запросе.
2 запроса = подключения
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.