- 1
SELECT count(*) as count FROM wz_vacancy WHERE action='1' and TO_DAYS(NOW()) - TO_DAYS(date) = '0';
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−160
SELECT count(*) as count FROM wz_vacancy WHERE action='1' and TO_DAYS(NOW()) - TO_DAYS(date) = '0';
* индекс только по primary key - id
* Оригинальный способ выборки сегодняшних объектов :) особенно, когда можно подставить конкретные даты еще в коде программы.
Dummy00001 19.08.2012 23:12 # +7
оспаривать ГКнутость запроса не буду, но не стоит забывать что ДБ как правило крутится на отдельном серваке - часто в другой часовой зоне. многие ДБ ориентированые программы зачастую преднамерено полагаются на время ДБ как на стандартное время.
но в это все равно `TO_DAYS(NOW()) - TO_DAYS(date) = '0'` не прощает.
guest 28.08.2012 14:53 # 0
guest 11.09.2012 15:15 # 0
scorcher 11.09.2012 17:47 # 0
где
* $date1 - это строка 2012-09-11 00:00:00 (начало сегодняшнего дня. в php можно получить просто)
* $date2 - это строка 2012-09-12 00:00:00 ($date1 + ровно сутки)
индекс составной по (action, date) - и запрос полетит.
Но вообще такие наборы данных на крупных проектах хранятся счетчиками и событийкой инкрементятся/декрементятся.
guest 19.10.2012 13:51 # 0