mysql_real_escape_string / Говнокод #11611 Ссылка на оригинал

0

  1. 1
SELECT count(*) as count FROM wz_vacancy WHERE action='1'   and TO_DAYS(NOW()) - TO_DAYS(date) = '0';

* индекс только по primary key - id
* Оригинальный способ выборки сегодняшних объектов :) особенно, когда можно подставить конкретные даты еще в коде программы.

Запостил: scorcher scorcher, (Updated )

Комментарии (5) RSS

  • > особенно, когда можно подставить конкретные даты еще в коде программы.

    оспаривать ГКнутость запроса не буду, но не стоит забывать что ДБ как правило крутится на отдельном серваке - часто в другой часовой зоне. многие ДБ ориентированые программы зачастую преднамерено полагаются на время ДБ как на стандартное время.

    но в это все равно `TO_DAYS(NOW()) - TO_DAYS(date) = '0'` не прощает.
    Ответить
  • Если индекс только по id которого нет в запросе, тогда один хрен, каждый запрос шерстит табличку.
    Ответить
    • SELECT count(*) as count FROM wz_vacancy WHERE action='1'   and date> '$date1' AND date <'$date2';

      где
      * $date1 - это строка 2012-09-11 00:00:00 (начало сегодняшнего дня. в php можно получить просто)
      * $date2 - это строка 2012-09-12 00:00:00 ($date1 + ровно сутки)

      индекс составной по (action, date) - и запрос полетит.
      Но вообще такие наборы данных на крупных проектах хранятся счетчиками и событийкой инкрементятся/декрементятся.
      Ответить
      • А потом иди ищи, что передается в эти даты. А так сразу ясно, что сегодня
        Ответить

Добавить комментарий

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8