iSlayter
Новичок
Вопрос по составлению запроса (like или ф-ии для р-ты с датой?)
Есть такой запрос:
[sql]SELECT `id` FROM `journals` WHERE `date` LIKE "2007-08-16 %" OR `date` LIKE "2007-08-11 %" OR `date` LIKE "2007-08-12 %"[/sql]
`date` поле datetime типа.
Для начала спрошу так ли лучше запускать этот запрос или в where лучше записать DAYOFMONTH(`date`), YEAR(`date`), MONTH(`date`)?
Проблема, кстати, сама в том заключается, что mysql возвращает лишь одну запись, которая попадает под последний LIKE(данные попадающие под первые два LIKE в базе есть)?
-~{}~ 17.08.07 00:53:
[sql]SELECT `id`
FROM `journals`
WHERE (
DAYOFMONTH( `date` ) =17
AND MONTH( `date` ) =8
AND YEAR( `date` ) =2007
)
OR (
DAYOFMONTH( `date` ) =12
AND MONTH( `date` ) =8
AND YEAR( `date` ) =2007
)
OR (
DAYOFMONTH( `date` ) =11
AND MONTH( `date` ) =8
AND YEAR( `date` ) =2007
)
LIMIT 0 , 30[/sql]
Можно закрывать, в принципе, но всё же было бы классно получить ответ на вопрос почему если в запросе сделать 3 раза `field` LIKE по полю `field` будет проверен лишь последний LIKE?
Есть такой запрос:
[sql]SELECT `id` FROM `journals` WHERE `date` LIKE "2007-08-16 %" OR `date` LIKE "2007-08-11 %" OR `date` LIKE "2007-08-12 %"[/sql]
`date` поле datetime типа.
Для начала спрошу так ли лучше запускать этот запрос или в where лучше записать DAYOFMONTH(`date`), YEAR(`date`), MONTH(`date`)?
Проблема, кстати, сама в том заключается, что mysql возвращает лишь одну запись, которая попадает под последний LIKE(данные попадающие под первые два LIKE в базе есть)?
-~{}~ 17.08.07 00:53:
[sql]SELECT `id`
FROM `journals`
WHERE (
DAYOFMONTH( `date` ) =17
AND MONTH( `date` ) =8
AND YEAR( `date` ) =2007
)
OR (
DAYOFMONTH( `date` ) =12
AND MONTH( `date` ) =8
AND YEAR( `date` ) =2007
)
OR (
DAYOFMONTH( `date` ) =11
AND MONTH( `date` ) =8
AND YEAR( `date` ) =2007
)
LIMIT 0 , 30[/sql]
Можно закрывать, в принципе, но всё же было бы классно получить ответ на вопрос почему если в запросе сделать 3 раза `field` LIKE по полю `field` будет проверен лишь последний LIKE?