Выборка данных из таблицы с условиями способы оптимизации

Enthusiast

Новичок
Выборка данных из таблицы с условиями способы оптимизации

Таблица 43 колонки нужно осуществить выборку информации по условию для каждой колонки, выборка ещё может осуществлятся не по всем 43 колнкам как организовать правильно запрос.
Заранее благодарен за любую помощь.
 

Wicked

Новичок
какие подразумеваются условия? совпадение по равенству?
 

Enthusiast

Новичок
13 столбцов полнотекстовый а остальные по равенству, таблища содержит на данный момент около 50000 записей, но в основном выборка будет осуществлятся по равенству
 

Wicked

Новичок
и что прямо в каждом из этих полец условие может присутствовать, а может не присутствовать?
 

Фанат

oncle terrible
Команда форума
Wicked
недвижимость какая-нибудь

Enthusiast
какие у тебя конкретно проблемы?
ты не знаешь, как делать выобрку?
 

Enthusiast

Новичок
да вот вопрос самый главный как организовать запрос если поля для выборки будут постоянно менятся или сделать один здоровенный запрос сразу на 43 поля но нехотелосьбы так )))
 

Wicked

Новичок
*****
судя по ссылке, которую он давал в соседнем топике, не недвижимость, а проститутки. Но откуда 43 параметра? Есть что-то такое, чего я не знаю о женщинах? .-)
 

Enthusiast

Новичок
Ну не совсем сфера услуг данные клиента его вещь обслуживание его вещи отчёт об обслуживание и куча мелочей я могу делать запрос сразу на 43 поля а если он будет менятся в зависимости от желания юзера например выборка по 5 полям или 10 хотелосьбы сделать один модуль а неписать все возможные варианты запросов )))

-~{}~ 28.07.07 02:44:

для проституток база данных )))))))))))) это уже круто ))))))))
 

Фанат

oncle terrible
Команда форума
PHP:
$w=array();
if (!empty($_GET['rooms'])) $w[]="rooms='".mysql_real_escape_string($_GET['rooms'])."'";
if (!empty($_GET['space'])) $w[]="space='".mysql_real_escape_string($_GET['space'])."'";
if (!empty($_GET['max_price'])) $w[]="price < '".mysql_real_escape_string($_GET['max_price'])."'";


if (count($w)) $where="WHERE ".implode(' AND ',$w); else $where='';
$query="select * from table $where";
 

Enthusiast

Новичок
ID double default NULL,
DATE$ char(15) default NULL,
DEPARTURE int(11) default NULL,
CLIENT char(50) default NULL,
PHONE char(50) default NULL,
ADDRESS char(75) default NULL,
PRODUCT_ID int(11) default NULL,
FIRM_ID int(11) default NULL,
MODEL char(40) default NULL,
SERIAL char(30) default NULL,
SERIAL2 char(30) default NULL,
REPAIR_KIND_ID int(11) default NULL,
COUPON char(20) default NULL,
COUPON_NO int(11) default NULL,
DATE_SALE char(15) default NULL,
DEALER_ID int(11) default NULL,
NOTE char(200) default NULL,
KIT char(200) default NULL,
EXT_VIEW char(200) default NULL,
DEFECT char(200) default NULL,
QUERY int(11) default NULL,
SECTOR_ID int(11) default NULL,
BOX char(4) default NULL,
CALL int(11) default NULL,
DATE_CALL char(15) default NULL,
BACK int(11) default NULL,
DATE_BACK char(15) default NULL,
FILIAL_ID int(11) default NULL,
FILIAL_IN char(15) default NULL,
FILIAL_OUT char(15) default NULL,
MASTER_ID int(11) default NULL,
FAULT char(200) default NULL,
REPAIR char(200) default NULL,
READY int(11) default NULL,
DATE_READY char(15) default NULL,
REPORT int(11) default NULL,
ACCEPTER_IN char(30) default NULL,
ACCEPTER_OUT char(30) default NULL,
PAYMENT double default NULL,
DATE_PAY char(15) default NULL,
COMMENT char(200) default NULL,
PAYMENT_BRAND double default NULL,
DATE_PAY_BRAND char(15) default NULL,
FULLTEXT KEY Client (CLIENT)

Вот вся таблицы если это поможет
 

Enthusiast

Новичок
char потомучто дата шиворот на выворот стоит но это временно ))))

-~{}~ 28.07.07 03:08:

это называется попытка перейти с Firebird на mysql ))))))))) через жо..у )))))))))))))))))

-~{}~ 28.07.07 03:13:

$w=array();
if (!empty($_GET['rooms'])) $w[]="rooms='".mysql_real_escape_string($_GET['rooms'])."'";
if (!empty($_GET['space'])) $w[]="space='".mysql_real_escape_string($_GET['space'])."'";
if (!empty($_GET['max_price'])) $w[]="price < '".mysql_real_escape_string($_GET['max_price'])."'";


if (count($w)) $where="WHERE ".implode(' AND ',$w); else $where='';
$query="select * from table $where";


а нельзя ли это както упрастить например без применения массива?
 

Wicked

Новичок
это будет называться "усложнить без применения массива".
 

Фанат

oncle terrible
Команда форума
иногда мне кажется, что этот форум посещают не люди.
а гомункулусы какие-то.
 

Enthusiast

Новичок
ладно буду пытатся как получится напишу ))) спасибо за оперативные ответы)))
 
Сверху