Zzepish
1.12.2015 - 22:52
У меня есть вип-акции, и не вип акции. Мне нужно выводить вип-акции из всей таблицы первыми. 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
Не ВИП
поля опишите и по каким полям сотрировка должна быть.
Zzepish
1.12.2015 - 23:56
depp
есть eventStartDate, eventEndDate, eventFreezeTime.
Если NOW()>=event startDate AND NOW()<=eventEndDate - то выводит акцию.
но! если eventFreezeTime >=NOW(), то акция считается вип.
сортировка по eventStartDate и eventFreezeTime
со временем и датой не уверен, что так сработает, но попробуй:
ORDER BY
if ( eventFreezeTime >=NOW() , 1, 0) DESC,
eventStartDate DESC/ASC
Zzepish
2.12.2015 - 00:33
depp
главное - алгоритм. Со временем и датой сам разберусь)
S.Chushkin
2.12.2015 - 00:50
ТС, всё зависит от цели.
Если "сделать выборку одним запросом", то пофиг union или order by - всё будет делаться через временную таблицу.
Если "быстро/эффективно", то сделать 2 запроса (скорее всего будет лучше).
Но точно не скажу, - попробуйте научный тык: сделать все варианты и сравнить. Оставить наиболее эффективный.
_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
Zzepish
2.12.2015 - 01:54
depp
не сработало(
Фишка в том, что б со всей таблицы выбирало вначале випы, потом обычные.
Т.е:
вип
не вип
не вип
не вип
вип
При моем запросе выше, чтоб выдало вначале випов
Zzepish
2.12.2015 - 01:55
S.Chushkin
т.е. 2 запроса в данном случае - это не плохо?
Игорь_Vasinsky
2.12.2015 - 06:29
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
S.Chushkin
2.12.2015 - 17:15
Цитата (Zzepish @ 2.12.2015 - 01:55) |
S.Chushkin т.е. 2 запроса в данном случае - это не плохо? |
Не плохо. Как минимум исключает 1 временную таблицу.
Даст это выигрыш в эффективности или нет - не скажу. Ибо в каждом конкретном случае может быть по разному, поэтому и предложил "научный тык" - он даст точный ответ в конкретном случае.
_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
Zzepish
5.12.2015 - 01:53
Спасибо, ребята)
S.Chushkin, тут должен быть один запрос и дело даже не в скорости выборки.
Давайте ка проверим есть ли на форуме программмистов программисты.
Почему в данной ситуации должен быть один запрос?А я пока "продолжу" читать книжку про сокеты...
_____________
Стимулятор ~yoomoney - 41001303250491
Zzepish
5.12.2015 - 16:03
Valick
потому-что организуеться новое соединение.
Т.е. так все идет одним соединением в 1-м запросе.
2 запроса = подключения
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.