2015-03-06 4 views
0

Мне нужно выбрать результат на основе столбца col1 значение. col1,col2 - текстовое поле типа.Как выбрать результат между двумя номерами?

+-----+-----------+------+ 
| id | col1 | col2 | 
+-----+-----------+------+ 
| 1 | 1200-1220 | XXX | 
+-----+-----------+------+ 
| 2 | 1455-1460 | YYY | 
+-----+-----------+------+ 

Пример запроса:

SELECT col2 FROM TABLE_NAME WHERE col1 = 1215 

Результат я хочу:

'XXX'

Как получить предыдущий результат.

Если я вставил неправильно, в каком формате мне нужно вставить строку, чтобы получить результат.

Просьба сообщить.

+0

Это неудачный способ создания вашей схемы таблицы. –

+0

Да .. Я должен вставить больше записей, вот почему я использую эту таблицу design.I получил решение @Gordan ответ. –

ответ

4

Это занимает немного манипуляций, но это возможно в MySQL:

where 1215 between substring_index(col1, '-', 1) + 0 and substring_index(col1, '-', -1) + 0 

То есть, поле разбирается на первые и последние значения (которые затем преобразуются в число).

+0

Отличный ..! @ Gordon Ты спасешь мои часы –

1
CREATE TABLE IF NOT EXISTS `test2` (
    `id` char(11) DEFAULT NULL, 
    `col1` varchar(90) NOT NULL, 
    `col2` varchar(90) NOT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 


INSERT INTO `test2` (`id`, `col1`, `col2`) VALUES 
('1', '1200-1220', 'XXX'), 
('2', '1455-1460', 'YYY'); 

Запрос:

SELECT col2 FROM test2 WHERE 1215 BETWEEN 
    CONVERT(SUBSTRING(col1, 1, LOCATE('-',col1) - 1),UNSIGNED INTEGER) AND 
    CONVERT(SUBSTRING(col1, LOCATE('-',col1) + 1),UNSIGNED INTEGER) 
Смежные вопросы