Задавайте вопросы, мы ответим
Вы не зашли.
Вопрос:
Как сделать запрос к таблице, если значение в ячейке может иметь такой вид:
1. Просто числовое значение (пример 20)
2. Значение типа <(меньше) или >(больше) какого-то числа (пример <10)
3. Диапазон чисел (пример 0…40).
Неактивен
Извините! Уточняю задачу. Есть таблица, которая содержит паспортные данные транзисторов. Данные в таблице могут быть в разных видах, уточняю: например ячейка с именем 'h21e' - данные в ней в виде диапазона (пример 100…200), следующий вид, это когда в ячейке задано значение < или > какого-то числа (пример ячейка ‘Ikbo’ в ней значение <120).
(3, 'КТ201Б(М)', 'n-p-n', '20', '20', '30(100)', '0,15', '30-90', '<1', '>=10', '', '<20', '', 'T1a(T19a)')
Необходимо создать универсальный запрос в котором искомое значение либо приравнивалось к значению в ячейке, либо проверялось на попадание в диапазон данных.
Неактивен
Структура таблицы:
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;
Неактивен
Одним запросом это написать не получится, но Вы можете написать хранимую процедуру,
которая получает эти данные, например, курсором.
Если данные немного оптимизировать, то можно сделать и одним запросом. Предлагаю такую
оптимизацию: сделать два столбца "минимальное значение" и "максимальное значение".
При этом если минимума нет, то там должен быть ноль, если нет максимума - то какое-то
запредельно большое значение. Тогда обычный WHERE BETWEEN Вас спасет.
Если хотите писать NULL, то надо будет писать конструкции типа IFNULL (...).
Неактивен
Учтите, что хранимую процедуру можно написать, только если у вас версия MySQL 5.0 или выше.
это можно проверить командой SELECT VERSION();
Обратите внимание также на то, что у Вас, судя по структуре вашей таблицы, строковые данные, и поэтому сравниваться они будут как строки, а не как числа.
Неактивен