Помогите создать запрос

Сан

Новичок
Помогите создать запрос

Как сделать запрос к таблице, если значение в ячейке может иметь такой вид:
1. Просто числовое значение (пример 20)
2. Значение типа <(меньше) или >(больше) какого-то числа (пример <10)
3. Диапазон чисел (пример 0…40).
 

Фанат

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

Сан

Новичок
Извините! Задача следующая. Есть таблица, которая содержит паспортные данные транзисторов. Данные в таблице могут быть в разных видах, уточняю: например ячейка с именем 'h21e' - данные в ней в виде диапазона (пример 100…200), следующий вид, это когда в ячейке задано значение < или > какого-то числа (пример ячейка ‘Ikbo’ в ней значение <120).
Структура таблицы:
CREATE TABLE IF NOT EXISTS `tranzistor_datasheets` (
`id` tinyint(7) NOT NULL auto_increment,
`tranzistor_type` varchar(255) NOT NULL default '',
`tranzistor_structure` varchar(255) NOT NULL default '',
`tranzistor_Ukbo` varchar(255) NOT NULL default '',
`tranzistor_UkeR` varchar(255) NOT NULL default '',
`tranzistor_IkMAX` varchar(255) NOT NULL default '',
`tranzistor_PkMAX` varchar(255) NOT NULL default '',
`tranzistor_h21e` varchar(255) NOT NULL default '',
`tranzistor_Ikbo` varchar(255) NOT NULL default '',
`tranzistor_fgr` varchar(255) NOT NULL default '',
`tranzistor_Uken` varchar(255) NOT NULL default '',
`tranzistor_Ck` varchar(255) NOT NULL default '',
`tranzistor_Ksh` varchar(255) NOT NULL default '',
`tranzistor_image` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM;


Пример значений из таблицы:
(3, 'КТ201Б(М)', 'n-p-n', '20', '20', '30(100)', '0,15', '30-90', '<1', '>=10', '', '<20', '', 'T1a(T19a)')

-~{}~ 12.10.07 19:47:

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

Сан

Новичок
Спасибо за ответ! А хоть как нибудь даная проблема решается?

-~{}~ 12.10.07 20:09:

Буду благодарен за любые идеи!
 

Фанат

oncle terrible
Команда форума
ну, сначала надо задачу описать.
мы же не знаем, для чего ты положил в ячейку значение <20
какой смысл у этих обозначений.

вот возьмем, к примеру, поле h21e
какое значение оно может принимать?
 

Sizif

Новичок
Сан, надо формировать структуру записи таким образом, чтобы каждое поле содержало по возможности
минимальную смысловую единицу.
То есть, если некоторая величина может принимать значения из диапазона, например, от 100 до 300,
то надо не писать всё это в одно поле, а создать два поля, первое из которых будет содержать
минимально допустимое значение, а второе - максимально допустимое.

А разные поиски и отборы записей по признаку "меньше", "больше" или "внутри диапазона"
проводить с применением обычных операций сравнения <, > и функции between соответственно.

Запрос, например, может выглядеть так:

select * from tablname where 200 between min_value and max_value
 
Сверху