Mysql - запрос на поиск

Иван

Новичок
Mysql - запрос на поиск

Составил запрос на поиск

=====================================================
SELECT * FROM `таблица`

WHERE `str` LIKE '%это ищем%'

AND `раздел id` = 1 OR 2 OR 3 OR 4 OR 5

AND TO_DAYS( NOW( ) ) - TO_DAYS( `Дата` ) >= 30 (*)

AND `Автор` = '432'

ORDER BY `Заголовок` DESC
=====================================================

Правильно понимаю:

1) Есил какждый AND выполница, то будет результат?

2) Формат даты - ("2007-12-12 12:12:12")
Данное условие по дате (отмечено *),
будет выбирать все записи, с прошлого месяца?

3) В запросе вабор разделов правильно описан? (`раздел id`)
 

Alexandre

PHPПенсионер
AND TO_DAYS( NOW( ) ) - TO_DAYS( `Дата` ) >= 30 (*)
чтоб вычислить все товары прошлого месяца, необходимо
1) вычислить текущий месяй,
отнять 1, если m>1, иначе м=12, год -1
далее запрос на дни с первого - по 30 (31)число
ЭТО ВСЕ ВЫЧИСЛЯЕТСЯ НА ПХП

в запросе используются функции

MONTH( data)
DAY(data)
YEAR(data)

что-то типа
Код:
ELECT .... AND
MONTH( data) = текущий-1 AND 
 DAY(data) BETWEEN 1 AND 31 AND
YEAR(data) = текущий (пред, для января)
ORDER ....
 

Altex

Новичок
>> AND `раздел id` = 1 OR 2 OR 3 OR 4 OR 5

AND `раздел id` IN (1 , 2 , 3 , 4 , 5)

-~{}~ 12.07.07 18:08:

>> AND TO_DAYS( NOW( ) ) - TO_DAYS( `Дата` ) >= 30 (*)

Из мануала DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= date_col;

DATE_SUB(CURDATE(),INTERVAL 1 MONTH) <= date_col;
 

Иван

Новичок
Добавил это строку в запрос, а она не выполняет требуемое...

Привильно понимаю... (DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= date_col;)

Она будет выбирать все данные,
у которых срок хранения в БД превышает 30 дней?

Year
Month
Week
Day
 
Сверху