SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 06.07.2010 03:58:39

Mnim
Участник
Зарегистрирован: 06.07.2010
Сообщений: 3

Фильтр

Здравствуйте!

Запустался. Как выбрать item_id по некоторым критериям. Ниже структура.
Пробовал таким:

Код:

SELECT `item_id` FROM `charact` WHERE (`field_id`=16 AND `value`='Германия') AND (`field_id`=17 AND `value` BETWEEN '40' AND '50');

Этот запрос вернет null

Но по идее я хочу выбрать item_id = 912755 и 112700

Как правильно построить запрос. Спасибо!

Код:

CREATE TABLE IF NOT EXISTS `charact` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `field_id` int(10) unsigned NOT NULL,
  `item_id` int(10) unsigned NOT NULL,
  `value` varchar(255) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `field_id` (`field_id`,`item_id`,`value`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251;


INSERT INTO `charact` (`id`, `field_id`, `item_id`, `value`) VALUES
(20, 15, 912755, 'AEG'),
(21, 16, 912755, 'Германия'),
(42, 16, 112700, 'Германия'),
(1829, 15, 912593, 'Ariston'),
(4276, 17, 112700, '46'),
(1830, 16, 912593, 'Италия'),
(4475, 15, 913055, 'Stiebel-Eltron'),
(4476, 17, 912755, '44'),
(7904, 17, 973111, '3'),
(7905, 16, 912852, 'Германия');

Неактивен

 

#2 06.07.2010 13:19:20

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Фильтр

FROM charact c1, charact c2
WHERE c1.item_id = c2.item_id AND
c1.field_id = 16 AND c1.value = "Германия" AND
c2.field_id = 17 AND c2.value BETWEEN 40 AND 50;

Неактивен

 

#3 06.07.2010 18:25:19

Mnim
Участник
Зарегистрирован: 06.07.2010
Сообщений: 3

Re: Фильтр

paulus написал:

FROM charact c1, charact c2
WHERE c1.item_id = c2.item_id AND
c1.field_id = 16 AND c1.value = "Германия" AND
c2.field_id = 17 AND c2.value BETWEEN 40 AND 50;

спасибо! работает.

в таблице около 100,000 записей, при выборке из нее по 5-7ми характеристикам проблем не должно возникнуть? спасибо.

Неактивен

 

#4 06.07.2010 18:41:53

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Фильтр

Попробуйте? smile
По логике нужны ключики на (item_id) и (field_id, value).

Неактивен

 

#5 06.07.2010 18:51:08

Mnim
Участник
Зарегистрирован: 06.07.2010
Сообщений: 3

Re: Фильтр

paulus написал:

Попробуйте? smile
По логике нужны ключики на (item_id) и (field_id, value).

через часика 4-5 попробую. учту индексы)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson