|
|
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
Добрый вечер, господа! Долго думал но все же так и не смекнул как сделать следующее. Есть вот такая таблица с рейтингом Делаю свертку по полю рейтинга и сложив необходимые мне столбцы Мне необходимо при любой сортировке в запросе получать текущее место в рейтинге для каждого юзера, т.е. привязать номер 1 к строке с емейлом sa@ya.ru, номер 2 к user@ya.ru и т.д. Другими словами - надо средствами мускуля независимо получать место в рейтинге при сортировке по любому полю. Можно ли этого добиться без таблиц/столбцов-посредников и без лишних запросов и php-кода? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2014, 21:19:33 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
darkersoul, можешь сформулировать эту же самую задачу на простом псевдопримере, выделив только суть, потому что помочь хочется, а копаться в твоих сигнатурах не очень... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2014, 21:30:38 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
Lumix, есть запрос, который формируется с учетом меняющихся фильтров и сортировки. в этом запросе при свертке образуется общий рейтинг в столбце *_result. так вот, необходимо иметь доступ в рамках запроса к этому столбцу отсортированном ВСЕГДА по убыванию, и чтобы из него можно было получить порядковый номер строки, которая соответствует текущему рейтингу в этой строке. в общем что-то наподобие работы php функции array_search() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 01:01:59 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
darkersoulLumix, есть запрос, который формируется с учетом меняющихся фильтров и сортировки. в этом запросе при свертке образуется общий рейтинг в столбце *_result. так вот, необходимо иметь доступ в рамках запроса к этому столбцу отсортированном ВСЕГДА по убыванию, и чтобы из него можно было получить порядковый номер строки, которая соответствует текущему рейтингу в этой строке. в общем что-то наподобие работы php функции array_search() всё равно не догоняю чего ты хочешь array_search делает то же самое, что select id from table where key = 'some value' способ получения номера строки в ЛЮБОМ запросе вот такой Код: sql 1. где (select ...) это вообще какой угодно запрос и какой угодно сложный запрос и неважно что он там делает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 10:41:27 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
Lumix, твой пример я понял, но это не то. Вот так мне надо сделать: Поле rank должно вычисляться внутри запроса. Т.е. оно равно позиции текущего рейтинга в столбце общего рейтинга отсортированному по убыванию. Надеюсь будет понятно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 15:36:31 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
скрины не отобразились почему-то, вот их ссылки: 1 картинка - http://awesomescreenshot.com/0233fp8nec 2 картинка - http://awesomescreenshot.com/03e3fp8zcd ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 15:38:36 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
столбец full - это общий рейтинг ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 15:42:56 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
darkersoulLumix, твой пример я понял, но это не то. Вот так мне надо сделать: Поле rank должно вычисляться внутри запроса. Т.е. оно равно позиции текущего рейтинга в столбце общего рейтинга отсортированному по убыванию. Надеюсь будет понятно... нет мне до сих пор не понятно чего ты хочешь ты так долго варился в своем проекте, что тебе многие вещи кажутся очевидными, а для того, кто видит все эти таблицы вновь это просто абра-кадабра я реально до сих пор не могу понять чего ты хочешь именно поэтому и прошу тебя переформулируй суть этой задачи на простом примере с использованием данных типа яблоки, апельсины, бананы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 16:05:36 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
Lumix, мне нужно поле Rank (место в рейтинге) , посчитанное на основании данных из свернутого столбца sum(Rating_result). Не знаю уже как проще, бананы и прочие фрукты тут некуда пристроить ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 17:33:41 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 17:38:55 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 17:42:20 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
darkersoul, а чем тебя мое решение не устраивает? возьми мое решение, засунь в него свой запрос переименуй мой rowId в свой Rank и будет тебе счастье.... а самое главное, я не пойму, что тебе мешает проставлять этот номер на клиенте, ведь в sql ты ведь его никак не используешь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 17:50:28 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
Lumix, при твоем запросе rowId не привязывается к sum(Rating_result). этот столбец всего лишь инкремент. Я показал выше как надо, что тебе еще не понятно :\ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 18:24:47 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
Как раз этот столбец нужен для использования. Просто получается физически его не существует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 18:27:12 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
darkersoulКак раз этот столбец нужен для использования. Просто получается физически его не существует. где использовать? если просто для индикации - тебе подсказали, если в дальнейших вариациях то заведи поле и после работы предложенного - проадейть эта поля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 18:52:01 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
вадя, ты прочитал полностью стартовое сообщение? в нем сказано "Можно ли этого добиться без таблиц/столбцов-посредников и без лишних запросов и php-кода?" а использовать его можно например при получении сведений о юзере, в которых будет инфа о его ТЕКУЩЕМ месте в ОБЩЕМ рейтинге. по сути, больше интересует вопрос оптимизации, по сути хочется вместо двух запросов делать один. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 18:57:36 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
хотя новое поле с его апдейтом будет лучше чем постоянный расчет этого поля при каждом запросе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 19:00:46 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
darkersoulLumix, при твоем запросе rowId не привязывается к sum(Rating_result). я не совсем понимаю что ты имеешь ввиду под словам ПРИВЯЗЫВАТЬСЯ darkersoulэтот столбец всего лишь инкремент. Я показал выше как надо, что тебе еще не понятно :\ чтобы номера соответствовали как ты нарисовал красными стрелочками, то тебе в запросе надо заменить order by rating_num_bets на order by rating_result desc и тогда соответствие будет как ты нарисовал стрелочками а если ты в итоге хочешь получить сортировку по rating_num_bets то оберни тогда всю эту бодягу ещё в один селекет свыше Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 19:18:58 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
авторselect * from ( ... а тут весь твой нижний запрос с order by rating_result ... ) t order by rating_num_bets и так каждый раз когда нужно вывести что-то.... оно конечно будет работать, только каждый раз вставлять такой гемор в код PHP, даже если сделать вьюшку - тоже не подарок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 19:28:53 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
Lumix, жаль, но все же ты меня так и не понял. причем тут Rating_num_bets? я тут почитал, мне нужна temporary table ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 19:30:10 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
Теперь непонятно почему временная таблица возвращает поле rank в обратном порядке, мне нужен 1,2,3 Если сделать @i := @i - 1 то rank будет -3,-2,-1 что даже не -1,-2,-3... Т.е. как будто order by не работает при создании врем. таблицы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 20:21:07 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
получилось решить только с помощью двух временных таблиц Код: sql 1. 2. 3. и потом использовать ее в подзапросе в главном запросе Код: sql 1. в итоге у меня выводится место в рейтинге привязанным к юзеру при любой сортировке и не пришлось использовать поле-посредник. всем спасибо за внимание и советы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 20:52:20 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 20:54:14 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
darkersoulLumix, жаль, но все же ты меня так и не понял. причем тут Rating_num_bets? при том, что именно по этому полю у тебя была сортировка в самом внутреннем запросе darkersoulя тут почитал, мне нужна temporary table )))) ты наверное будешь удивлен, но подзапросы это и есть временные таблицы например: Код: sql 1. во время выполнения этого запроса будет создано две временные таблицы t1 и t2 то, что ты сделал на временных таблицах - это просто более громоздкая запись ну и ты использовал временные таблицы просто для прочистки своих мозгов, чтобы тебе самому понятнее было что в каком порядке выполняется, но когда руку набьешь, то сможешь такие шняги мутить просто на вложенных запросах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 21:16:22 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
вадяавторselect * from ( ... а тут весь твой нижний запрос с order by rating_result ... ) t order by rating_num_bets и так каждый раз когда нужно вывести что-то.... оно конечно будет работать, только каждый раз вставлять такой гемор в код PHP, даже если сделать вьюшку - тоже не подарок если использование подобных запросов это слишком больно для твоего кода, значит с архитектурой твоего приложения что-то не так... значит что архитектура тебя слишком ограничивает... в хорошей архитектуре и не такие кренделя можно мутить и все будет комфортно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 21:20:37 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
Lumix, видимо ты прав. последовательность действий на лицо и мне легче усваивать именно такой вид. Но мне интересно, почему я не смог воспользоваться сразу лишь одной временной таблицей. Почему она при создании сортируется неконтролируемо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 23:52:38 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
собственно это отсылка к 16542601 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2014, 23:54:45 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
авторесли использование подобных запросов это слишком больно для твоего кода, значит с архитектурой твоего приложения что-то не так... значит что архитектура тебя слишком ограничивает... в хорошей архитектуре и не такие кренделя можно мутить и все будет комфортно... для кода это не больно, если такое использовать один раз. но если это используется многократно, и, в осносном, результат как исходные данные для последующей обработки - это не правильно. вопрос не о кренделях, за nn лет практики программирования - пришел к выводу аналогичному из самолётостроения - красивая машина - красиво летает. красивый код(не оформление) - замечательно работает. кренделя тоже работают, и молотки летают.... то, что придумал ТС, просто безобразие, твой вариант правильный, если его использовать для заполнения доп. поля. но использовать для постоянного получения промежуточного результата - слишком накладная операция, это уже в сторону ТС. тут самое оптимальное - хранимки(хранимка буде выполнять роль "триггера"), на вставку/апдейт - вычислить это доп. поле, а потом уже простыми селектами пользоваться. но это предложение - если ТС может добавить поле..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2014, 00:12:18 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
вадя, безобразие? обоснуй, пожалуйста, свое утверждение. чем именно мое решение безобразие? эт оскажется на производительности через какое-то время или что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2014, 00:32:44 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
вадя, я сделал тоже самое, что и он, просто "код получился более громоздкий". но это не влияет на время, затраченное на обработку, данные ведь те же, и алгоритм тот же. при том работает он довольно быстро. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2014, 00:34:08 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
вадя, если подумать, то количество исполнений запроса на выборку рейтинга (делают пользователи) в разы превышает количество запросов на добавление рейтинга и вычисления текущего ранга (делает админ). получается использование дополнительного поля, которое вычислено заранее админом, выгоднее, чем постоянно вычислять ранг пользовательскими запросами. и еще выгоднее будет с каждым разом при разрастании таблицы с рейтингом. я правильно понимаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2014, 00:39:07 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
просто насчет хранимых процедур и триггеров - хостер не поддерживает, а менять его это тот еще гемор =\ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2014, 00:40:34 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
darkersoulLumix, видимо ты прав. последовательность действий на лицо и мне легче усваивать именно такой вид. Но мне интересно, почему я не смог воспользоваться сразу лишь одной временной таблицей. Почему она при создании сортируется неконтролируемо? она сортируется контроллируемо для меня просто до сих пор остается загадкой что именно ты видишь когда смотришь на sql код на данный момент лично мне кажется, что вот этот кусок ORDER by Rating_num_bets DESC просто как-то мимо твоих глаз проскакивает... я не утверждаю, что ты этого не видишь, я лишь сообщаю какое создается ощущение со стороны ещё возникает ощущение, что ты не осмысливаешь как работает код, а просто подбираешь наобум разные варианты, пока результат тебя не устроит... если ты вникнешь в суть запросов, то увидишь, что там довольно все контроллируемо просто видимо сам объем тебе сносит башню и тебе не удается увидеть картинку ситуации целиком... но это уже вопрос квалификации и опыта... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2014, 01:00:40 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
вадядля кода это не больно, если такое использовать один раз. коду вообще не может быть больно))) я имел ввиду боль для кодера если тебе такой кусок многократно с разными параметрами использовать больно, значит архитектура программы слабовата вадяно если это используется многократно, и, в осносном, результат как исходные данные для последующей обработки - это не правильно. я в принципе не готов общаться в системе координат правильно не правильно, потому что правила это категория власти и поэтому любое общение на тему правильно неправильно это просто меряться у кого длиннее и кто за ночь больше раз может кончить))) вадявопрос не о кренделях, за nn лет практики программирования - пришел к выводу аналогичному из самолётостроения - красивая машина - красиво летает. имхо не стоит путать аэродинамику и начинку рабочее место пилота - это взрыв мозга для человека, там никакой красоты нет а если брать рабочее место пилота апаче например, там вообще полный пиз..ц!! красота не имеет отношения к кодингу, тут другие категории работают вадякрасивый код(не оформление) - замечательно работает. замечательно - это тоже несуществующая категория в кодинге эта категория больше относится к управленческому и организационному миру, к отношениям между людьми вадя кренделя тоже работают, и молотки летают.... про кренделя я имел ввиду не ради понтов, а что-то типа как в фильме Экипаж для того чтобы совершить аварийную посадку и спасти людей ему пришлось перевернуть самолет кверху дном и садится не на пузо, а на крышу. я вот про что имел ввиду... вадя то, что придумал ТС, просто безобразие, твой вариант правильный, если его использовать для заполнения доп. поля. но использовать для постоянного получения промежуточного результата - слишком накладная операция, это уже в сторону ТС. тут самое оптимальное - хранимки(хранимка буде выполнять роль "триггера"), на вставку/апдейт - вычислить это доп. поле, а потом уже простыми селектами пользоваться. но это предложение - если ТС может добавить поле..... во-первых, тут ты априори решаешь задачу, которую пока никто не ставил, а именно оптимизация скорости работы во-вторых, есть сильно ненулевая вероятность, что у ТС очень низкая квалификация в области работы с БД и поэтому ему все равно такие вопросы не понятнуть поэтому исходя из реалий ситуации решение на временных таблицах в данный момент полностью подходит потом подрастет в профессиональном плане и через год другой третий научится делать более качественные решения а пока на данном этапе и такие каракули сойдут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2014, 01:10:56 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
Lumix, стооой. сортировка по Rating_num_bets здесь только для примера, чтобы видно было что rowId не привязан к юзеру! сортировка всегда по общему рейтингу по убыванию! я понимаю как работает код, но ты сам мне так и не смог ответить, как использовать одну таблицу вместо двух. мне надо лишь вычислить текущую позицию в рейтинге на основании данных из таблицы h4m_rating не используя поля-посредники. и ты почему-то до сих пор это не понял... ;\ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2014, 01:16:42 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
Lumix, не ставил вопрос об оптимизации?? ты вообще читаешь, что я пишу? раз у тебя такая большая ненулевая вероятность того, что ты суперспециалист по вопросам оптимизации запросов к БД, сообрази, пожалуйста, именно тот запрос, который устроил бы всех. от тебя я вижу только пока оценивание моих навыков, но никак не помощь. но все равно спасибо, что ответит тут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2014, 01:24:56 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
darkersoulвадя, если подумать, то количество исполнений запроса на выборку рейтинга (делают пользователи) в разы превышает количество запросов на добавление рейтинга и вычисления текущего ранга (делает админ). получается использование дополнительного поля, которое вычислено заранее админом, выгоднее, чем постоянно вычислять ранг пользовательскими запросами. и еще выгоднее будет с каждым разом при разрастании таблицы с рейтингом. я правильно понимаю? абсолютно правильно. цена добавления поля - совершенно не срвнима со стоимостью постоянных вычисленй. но если хостер не поддерживает хранимки.... это странно. тогда этот "триггер" надо организовать в коде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2014, 06:00:15 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
авторкоду вообще не может быть больно))) я имел ввиду боль для кодера если тебе такой кусок многократно с разными параметрами использовать больно, значит архитектура программы слабовата для меня проще вставить в код программы вызов хранимки с параметрами. чем формировать такую sql строку с параметрами - и разнести логику на разные части - ООП позволяет экономить и в разработке и в выполнении. авторпро кренделя я имел ввиду не ради понтов, а что-то типа как в фильме Экипаж для того чтобы совершить аварийную посадку и спасти людей ему пришлось перевернуть самолет кверху дном и садится не на пузо, а на крышу. я вот про что имел ввиду... мастерство воина оценивается на числовм выйгранных битв, числом побед, одержанных без вступления в бой. сейчас считается мастерством вождения быстро разгоняться после светофора и круто торозить перед ним...., но настоящее мастерство - проехать по городу без остановок на светофорах. авторво-первых, тут ты априори решаешь задачу, которую пока никто не ставил, а именно оптимизация скорости работы во-вторых, есть сильно ненулевая вероятность, что у ТС очень низкая квалификация в области работы с БД и поэтому ему все равно такие вопросы не понятнуть я соглашусь, что опимизацией можно пренебречь,на каком-то самом начальном этапе , когда просто идет тыканье. но в любом другом случае, а уж если чел обратился за помощью -ему надо указать варианты более оптимального решения. пусть уже сам выбирает. в итоге может оказаться, что смена хостера - более дешёвый вариант. авторя в принципе не готов общаться в системе координат правильно не правильно, потому что правила это категория власти и поэтому любое общение на тему правильно неправильно это просто меряться у кого длиннее и кто за ночь больше раз может кончить))) "правильно не правильно" - все правила создаются из практики. это метод обучения на чужих ошибках, если не следовать правилам - значит учиться на своих ошибках, а это очень длительный путь. авторимхо не стоит путать аэродинамику и начинку рабочее место пилота - это взрыв мозга для человека, там никакой красоты нет а если брать рабочее место пилота апаче например, там вообще полный пиз..ц!! красота не имеет отношения к кодингу, тут другие категории работают заблужение - красивый предмет, от красив со всех сторон и работает хорошо вседа. иначе это китайская подделка. и если рабочее место пилота апаче например, там вообще полный пиз..ц!! то мне просто жаль такой мозг, он просо не дорос до такого уровня. авторвадякрасивый код(не оформление) - замечательно работает. замечательно - это тоже несуществующая категория в кодинге эта категория больше относится к управленческому и организационному миру, к отношениям между людьми опыт и практика подсказывают, что существует такое понятие "нравится/не нравится" , и если правильный, работающий код просто не нравится, значит стоит прислушаться к этому чувству. найти код, который понравится, и (повторюсь практика и опыт) находится такой код, который позволяет решить много очень просто..... но это большое отступление от темы топика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2014, 07:01:55 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
..приятно читать когда джентельмены вежливо обсуждают незначительные разногласия в понимании процессов подхода к разработке и оптимизации кода на божественом и мелодичном языке структурных запросов. кстати о птичках , нельзя пользоватся переменными (расчет ранка) на томже уровне вложения что и групировка -- как сделано здесь 16542601 . Поэто му и пришлось сделать еше одно вложение -- или еше одну временую таблицу , как сдесь 16542740 . Это особености использования переменных, не бог весть какие сложности, но все же... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2014, 07:23:50 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
darkersoulLumix, стооой. сортировка по Rating_num_bets здесь только для примера, чтобы видно было что rowId не привязан к юзеру! сортировка всегда по общему рейтингу по убыванию! я понимаю как работает код, но ты сам мне так и не смог ответить, как использовать одну таблицу вместо двух. мне надо лишь вычислить текущую позицию в рейтинге на основании данных из таблицы h4m_rating не используя поля-посредники. и ты почему-то до сих пор это не понял... ;\ я не тебе открытым текстом сообщил, что не понимаю твою задачу, а разбираться в ней больше, чем разбирается в ней автор задачи я отказываюсь принципиально я же просил тебя сформулировать суть задачи на примере яблок, апельсинов и пр. ты отказался что типа это невозможно но на самом деле это просто отмазка, чтобы не тратить свое время я когда вижу твои огромные портянки и скриншоты мне физически не охота тратить на ковыряние в этом много времени я либо схватываю что-то за 20-30 сек, либо кладу на это болт. это ведь бесплатный форум, поэтому если хочешь получить от меня решение на чистых селектах, то сначала подай суть задачи на абстрактном простейшем примере и я тогда попомогу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2014, 21:18:26 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
darkersoulLumix, не ставил вопрос об оптимизации?? ты вообще читаешь, что я пишу? кинь ссылку где именно ты поставил задачу по оптимизации изначально у тебя была задача про "не могу составить запрос" а задача по оптимизации всегда формулируется так: "вот запрос, он работает, но тормозит, помогите его ускорить" darkersoulраз у тебя такая большая ненулевая вероятность того, что ты суперспециалист по вопросам оптимизации запросов к БД, я не суперспециалист и вот почему дело в том что наше сознание воспринимает лишь относительные величины и поэтому мозг каждого спеца для оценки собственной квалификации использует коэффициент объемЗнаю / объемНеЗнаюНоЗнаюЧтоЕсть так вот часто у новичков это коэффициент составляет 80-90% и поэтому они считают себя крутыми, но это лишь из-за того, что у них в знаменателе маленькое число а профессионал по мере роста не только увеличивает числитель, но ещё и знаменатель и поэтому получается знаменитый эффект - чем больше мы знаем, тем больше у нас ощущение, что мы очень мало знаем, а у настоящих профессионалов часто вообще возникает иллюзия что они нихрена не знают, но при этом если посмотреть на асболютные величины будет примерно так новичок: 312 / 407 = 76% профессионал: 4205 / 9210 = 45% гуру: 16205 / 97620 = 16% то есть относительно знаний новичка гуру знает в 50 раз больше, но доля его знаний относительно всех существующих знаний постоянно уменьшается darkersoulсообрази, пожалуйста, именно тот запрос, который устроил бы всех. от тебя я вижу только пока оценивание моих навыков, но никак не помощь. но все равно спасибо, что ответит тут. я готов сообразить для тебя этот запрос, если увижу, что ты инвестировал свое время и внимание в глубокое осмысление своей задачи и переформулируешь её в абстрактный кейс представь, то перед тобой стоит задача не решить твою конкретную задачу, а составить учебный пример (кейс) для учебника. ты ведь для этого обязательно уберешь все лишнее и оставишь только самую-самую суть поэтому как только сформулируешь четкую задачу, чтобы я прочитал за 20-30 сек и понял её, тогда я составлю для тебя запрос, а пока я вижу что ты для экономии своего времени просто заскриншотил запрос из phpmyadmin, без всяких отступов, в кучу в кашу, с лишними тильдиками, то у мне сразу вспоминается мультик как вовка в тридевятом царстве пирожки пек))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2014, 21:31:01 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
вадядля меня проще вставить в код программы вызов хранимки с параметрами. чем формировать такую sql строку с параметрами - если проще сделать хранимку, значит сгенерить запрос из кода сложно, больно, трудно, значит архитектура кода слабовата... я вот к чему клоню... сильная архитектура позволит сгенерить и выполнить запрос любой сложности, причем для удобного использования в сотнях разных частях программы, с учетом сайдэффектов и пр. вадяи разнести логику на разные части - ООП позволяет экономить и в разработке и в выполнении. тут не догоняю: что есть разные части? и причем тут ООП??... вадямастерство воина оценивается на числовм выйгранных битв, числом побед, одержанных без вступления в бой. кодинг это не бой а если и бой, то спортивный, типа бокса а боксе мастерство считается именно по выигранным боям вообще забавно было бы считать мастерство кодера по объему ненаписанных проектов!!!))))) по-моему все как раз наоборот... вадясейчас считается мастерством вождения быстро разгоняться после светофора и круто торозить перед ним...., если речь о стритрейсе, особенно если на деньги, то это тоже настоящее мастерство!! вадяно настоящее мастерство - проехать по городу без остановок на светофорах. если остановился на светофоре, значит не мастер по-моему глупый критерий... и помимо того, что глупый, ещё и к кодингу не относится, потому что вождение автомобиля это просто повторение однажды заученных простых движений, недаром ведь у нас в городе большиство водителей маршруток - это необразованные гастарбайтеры... вадяя соглашусь, что опимизацией можно пренебречь,на каком-то самом начальном этапе , когда просто идет тыканье. но в любом другом случае, а уж если чел обратился за помощью -ему надо указать варианты более оптимального решения. ещё одно слово с которым я отказываюсь работать: НАДО мне кажется глупым давать совет по оптимизации, если он его не просит потому что на поиск такого совета уйдет время, а может ему и не надо у меня этот навык "написан кровью" на основе опыта отработки пользовательских заказов только начнешь читать заказы литературно, с фантазией, тут же все деньги в трубу вылетят, а как только все эти свои фанатзии про оптимизацию кладешь на бумагу и проставляешь соответствующий ценник, то очень быстро оказывается, что оно и не надо заказчику... вадяпусть уже сам выбирает. в итоге может оказаться, что смена хостера - более дешёвый вариант. шутка юмора в том, что ты призываешь давать "развернутый" ответ, но сам-то его не даешь))) а видимо как начнешь сам давать, как встанет необходимость тратить свое время в разбор его каши, так сразу сильно задумаешься надо ли оптимизации искать или время жалко))))) вадя"правильно не правильно" - все правила создаются из практики. это метод обучения на чужих ошибках, если не следовать правилам - значит учиться на своих ошибках, а это очень длительный путь. есть такая поговорка: обжегшись на молоке, дуает и на воду часто на основе ощибок под воздействием боли вводят правила, которые ограничивают возможности использование любых правил - это всегда баланс между риском потерять и возможностью приобрести и эти комбинации носят субъективный характер в зависимости от степени смелости и иных особенностей человека, например, памяти, опыта, квалификации и пр. именно поэтому я и заявляю, что категория "правильно / не правильно" это всегда вопрос власти и если кто-то заявляет, что какое-то действие неправильно или правильно, то он уже как бы заявляет свою власть и требует вести дела в соответствие с его особенностями личности на мой взгляд эта категория приемлима в трудовых отношениях, когда правила устанавливает начальник или в учебных отношениях, когда правила устанавливает учитель, а когда речь идет о свободном человеке принимающем на себя всю ответственность за выбранные риски, то категория правильно / неправильно теряет свою актуальность вадяопыт и практика подсказывают, что существует такое понятие "нравится/не нравится" , опять же нравится / не нравится это вопрос власти начальник всегда прав или см. п.1))) вадяи если правильный, работающий код просто не нравится, значит стоит прислушаться к этому чувству. прислушивайся / не прислушивайся, а если кодер находится в подчиненной позиции он вынужден с таким кодом работать, а если он находится в свободной позиции, то для него правильный и нравится это синонимы и ситуации когда правильно, но не нравится такого быть не может вообще, остается только нправится/не нравится, а правильным считается все, что нравится вадянайти код, который понравится, и (повторюсь практика и опыт) находится такой код, который позволяет решить много очень просто..... мой личный опыт подсказывает, что высшие формы мастерства - это прежде всего безразличие к коду вообще, когда нравится / не нравится заменятся на такие категории как понятно / непонятно, а если непонятно, то какова скорость разбора до понимания... как-то так... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2014, 22:28:28 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
как у нас, в своё время говорили - замнём, для ясности.... но если есть желание можем встретиться - поспорить :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2014, 22:35:15 |
|
||
|
Получение порядкового номера строки в запросе
|
|||
|---|---|---|---|
|
#18+
вадякак у нас, в своё время говорили - замнём, для ясности.... но если есть желание можем встретиться - поспорить :) да это так, субботний бред на пьяную голову))) за приглашение все равно спасибо, буду знать, что есть возможность пообщаться с собратом по разуму))) если станет тоскливо от серости жизни, то можно и встретится как-нибудь, пожрать, поболтать в донне оливии например, она круглосуточная... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 00:03:31 |
|
||
|
|

start [/forum/topic.php?all=1&fid=47&tid=1834266]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
62ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
| others: | 235ms |
| total: | 405ms |

| 0 / 0 |
