[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: выборка из БД с условием
sjy19
Добрый день всем!
Ситуация такая:
есть в mysql табличке ячейка nom, содержащая вот такого вида данные: 10508010/110112/0000121, где 110112 между слэшами - это дата.
Не могу придумать как сделать такую выборку по диапазону дат, чтобы выбирались из таблички этой те nom, где дата соответствует заданному диапазону.
Прошу помочь, кто может rolleyes.gif



Спустя 41 минута, 24 секунды (25.04.2012 - 13:54) dadli написал(а):
$date_1 = '2012-01-11';
$date_2 = '2012-03-11';


$res = mysqli_query($db,
"SELECT * FROM (
SELECT *,CAST(CONCAT(
SUBSTR(SUBSTRING_INDEX(SUBSTRING_INDEX(name,'/',2),'/',-1),5,2) + 2000,'-',
SUBSTR(SUBSTRING_INDEX(SUBSTRING_INDEX(name,'/',2),'/',-1),3,2),'-',
SUBSTR(SUBSTRING_INDEX(SUBSTRING_INDEX(name,'/',2),'/',-1),1,2),'-'
) as DATE) AS ddd
FROM `table`
) AS t
WHERE ddd BETWEEN '
$date_1' AND '$date_2'
"
);



например так можно, но если таблица болшая, етот запрос виполняется очен долго.
поетаму, дату всегдо нужна хранить отделную в поле и в правилном формате.

Спустя 28 минут, 24 секунды (25.04.2012 - 14:22) sergeiss написал(а):
sjy19 - я бы так сказал, что, может быть, лучше переделать табличку? Чтобы там дата была в отдельном поле. Будет удобнее выбирать + можно проиндексировать по дате. Индексирование позволит ускорить выборку, особенно когда много данных будет.

Спустя 2 дня, 21 час, 31 минута, 38 секунд (28.04.2012 - 11:54) sjy19 написал(а):
Да, спасибо, так и сделала, добавила ячейку с датой. Все сработало! wink.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.