Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (2) [1] 2  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Выборка mysql с приоритетом выводов випов
Zzepish  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 5583
Пользователь №: 32538
На форуме: 5 лет, 1 месяц, 29 дней
Карма: 56




У меня есть вип-акции, и не вип акции. Мне нужно выводить вип-акции из всей таблицы первыми. 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

Не ВИП
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
depp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 392
Пользователь №: 40589
На форуме: 2 года, 7 месяцев, 21 день
Карма: 22




поля опишите и по каким полям сотрировка должна быть.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Zzepish  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 5583
Пользователь №: 32538
На форуме: 5 лет, 1 месяц, 29 дней
Карма: 56




depp
есть eventStartDate, eventEndDate, eventFreezeTime.
Если NOW()>=event startDate AND NOW()<=eventEndDate - то выводит акцию.
но! если eventFreezeTime >=NOW(), то акция считается вип.
сортировка по eventStartDate и eventFreezeTime
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
depp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 392
Пользователь №: 40589
На форуме: 2 года, 7 месяцев, 21 день
Карма: 22




со временем и датой не уверен, что так сработает, но попробуй:

  ORDER BY
if
( eventFreezeTime >=NOW() , 1, 0) DESC,
eventStartDate DESC/ASC


Это сообщение отредактировал depp - 2.12.2015 - 00:17
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Zzepish  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 5583
Пользователь №: 32538
На форуме: 5 лет, 1 месяц, 29 дней
Карма: 56




depp
главное - алгоритм. Со временем и датой сам разберусь)
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
S.Chushkin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пофигист
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 823
Пользователь №: 36058
На форуме: 4 года, 6 месяцев, 28 дней
Карма: 42




ТС, всё зависит от цели.
Если "сделать выборку одним запросом", то пофиг union или order by - всё будет делаться через временную таблицу.
Если "быстро/эффективно", то сделать 2 запроса (скорее всего будет лучше).
Но точно не скажу, - попробуйте научный тык: сделать все варианты и сравнить. Оставить наиболее эффективный.


--------------------
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Zzepish  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 5583
Пользователь №: 32538
На форуме: 5 лет, 1 месяц, 29 дней
Карма: 56




depp
не сработало(
Фишка в том, что б со всей таблицы выбирало вначале випы, потом обычные.
Т.е:

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

При моем запросе выше, чтоб выдало вначале випов
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Zzepish  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 5583
Пользователь №: 32538
На форуме: 5 лет, 1 месяц, 29 дней
Карма: 56




S.Chushkin
т.е. 2 запроса в данном случае - это не плохо?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
kaww  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1788
Пользователь №: 20757
На форуме: 7 лет, 5 месяцев, 23 дня
Карма: 187




PMПисьмо на e-mail пользователю
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



c начала 2017 года в Новосибирске.
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26442
Пользователь №: 21350
На форуме: 7 лет, 4 месяца, 11 дней
Карма: 739




Order by field()


--------------------
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql (TSql, BI OLAP, MDX), Git, SVN, CodeIgnater, Yii 2, JiRA, Redmine, Bitbucket, Composer
PMПисьмо на e-mail пользователю
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
depp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 392
Пользователь №: 40589
На форуме: 2 года, 7 месяцев, 21 день
Карма: 22




в продолжение kaww
http://sqlfiddle.com/#!9/abb82/2/0
PMПисьмо на e-mail пользователю
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
S.Chushkin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пофигист
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 823
Пользователь №: 36058
На форуме: 4 года, 6 месяцев, 28 дней
Карма: 42




Цитата (Zzepish @ 2.12.2015 - 01:55)
S.Chushkin
т.е. 2 запроса в данном случае - это не плохо?

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


--------------------
PM
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Zzepish  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 5583
Пользователь №: 32538
На форуме: 5 лет, 1 месяц, 29 дней
Карма: 56




Спасибо, ребята)
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5662
Пользователь №: 35718
На форуме: 4 года, 8 месяцев, 5 дней
Карма: 176




S.Chushkin, тут должен быть один запрос и дело даже не в скорости выборки.
Давайте ка проверим есть ли на форуме программмистов программисты.
Почему в данной ситуации должен быть один запрос?
А я пока "продолжу" читать книжку про сокеты...


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Zzepish  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 5583
Пользователь №: 32538
На форуме: 5 лет, 1 месяц, 29 дней
Карма: 56




Valick
потому-что организуеться новое соединение.
Т.е. так все идет одним соединением в 1-м запросе.
2 запроса = подключения
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (2) [1] 2  Ответ в темуСоздание новой темыСоздание опроса