- 1
SELECT id, login, 0 AS shows, 0 AS clicks, 0 AS money FROM users WHERE is_adv=1 AND is_blocked=0 AND (shows <> 0 AND clicks <> 0 AND money <> 0)
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−115
SELECT id, login, 0 AS shows, 0 AS clicks, 0 AS money FROM users WHERE is_adv=1 AND is_blocked=0 AND (shows <> 0 AND clicks <> 0 AND money <> 0)
Nemoden 07.11.2011 18:09 # 0
roman-kashitsyn 07.11.2011 18:10 # 0
> shows <> 0
are you blind?
похоже на заглушку
Nemoden 07.11.2011 18:14 # 0
Nemoden 07.11.2011 18:18 # +1
Если бы автор этого "говнокода" сказал, что сие балансы пользователей потом выводит в продакшен-схеме, то было бы другое отношение.
peredozo 07.11.2011 18:23 # −1
Dummy00001 07.11.2011 23:27 # −1
меня всегда умиляло когда народ просит базу послать им констант пачку.
Nemoden 08.11.2011 07:58 # 0
у вас есть 2 таблицы, которые по структуре своей почти одинаковые кроме 1 столбца (скажем, sum) и вам нужно сделать UNION. Первая таблица InnoDB и используется, вторая таблица - архивная. Вопрос: как делать UNION?
В этом случае вам нужно просто "подогнать" столбцы, этот пример можно рассматривать так: sum в table2 всегда имеет дефолтное значение (0), т.к. самого column'а в таблице не существует.
А еще можно так:
думаю, понятно, что к чему.
Если вы не сталкивались с надобностью делать подобные вещи, это не обозначает, что это обязательно говнокод.
P.S. (я понимаю, что на меня сейчас же накинутся с замечаниями мол, да тут не нужен UNION! Сделай 2 селекта!) пример с UNION далеко не единственный вариант почему может потребоваться ставить подобные заглушки, но так делать это нормально.
guest 08.11.2011 12:04 # +2
Надо было оправдываться, что это динамически генерируемый запрос и в данном случае просто так карта легла, что результат получается заведомо пустой. Тогда бы прокатило.
Nemoden 08.11.2011 13:54 # +1
> "где кол-во показов не 0, кол-во кликов не 0 и бабла не 0, но в результате сделать подмену на нули. Зачем? Хуй знает!"
На самом деле мы тут воду в ступе переминаем :-) От это спора никто кто поумнеет - конструктива-то нет. Моя позиция понятна, позиция оппонентов мне тоже понятна, - выглядит говнокодисто, - я согласен.
Dummy00001 08.11.2011 13:40 # −1
сталкивался, и юнионы у нас на проекте тоже в таком духе используются.
но вот то что сверху стоит напоминает не заглушку, а хак: запрос поменять проще чем код, поэтому меняем только запрос и меняем его таким образом что бы код работал как и раньше. теперь представь что в базе в `users` есть милион записей: и на два поля с информацией, посылается еще и три константы. другими словами 60% передаваемой информации заранее известна клиенту, но все равно тащится по сети из базы. на кой хер?
Nemoden 08.11.2011 13:59 # +1
guest8 09.04.2019 11:55 # −999