







|
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,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
41683
|
|