Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Оптимизировать сортировку (Антон) 22/09/2012 - 07:26:16
      Re: Оптимизировать сортировку (Akina) 22/09/2012 - 22:45:38
      Re: Оптимизировать сортировку (Антон) 23/09/2012 - 07:01:58
      Re: Оптимизировать сортировку (Akina) 24/09/2012 - 11:13:29



From: Антон - 22/09/2012 - 07:26:16
Subject:Оптимизировать сортировку
-----------------
Вобщем вот такой запрос на обновление номера в рейтинге с многосложным условием и сортировкой по 6 полям. Есть ощущение что от многочисленных IF можно исбавиться
UPDATE
cb_data114
SET
`f1346` =
(
select @num
from (SELECT @num:=1, @type:=0) s
where
(@num := if(`f1652` = @type,@num + 1, 1)) is not null
and (@type := f1652) is not null
)
where status=0
ORDER BY
`f1656`,
`f1652`,
IF (`f1353` = '0000-00-00 00:00:00' and `f1348`='',3,`f1634`),
IF (`f1353`!= '0000-00-00 00:00:00' and `f1348`!='',f1353,now()),
IF (`f1353` = '0000-00-00 00:00:00' and `f1348`!='',1,0),
IF (`f1348` = '', 99999999999999999, CAST(`f1348` as UNSIGNED) )
Первый IF - если дата и f1348 пустые то опускать в самый низ,т.к. в табле 2-максимальное значение среди искомых.
Второй - если нет даты и поле f1348 пустое - ставить текущую дату. чтоб опустить в низ рейтинга
Третий - если дата пустая и f1348 не пустая то опустить в низ
Четвертый - если f1348 пустое очень большое значение (не достижимое) чтоб опустить вниз


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
41683



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |