如何select两个数字范围之间的结果?

How to select the result between two numbers range?

我需要 select 基于列 col1 值的结果。 col1,col2 是文本字段类型。

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

示例查询:

SELECT col2 FROM TABLE_NAME WHERE col1 = 1215

我想要的结果:

'XXX'

我是如何得到上面的结果的。

如果我插入错误,我需要插入一行才能得到结果。

请指教

这需要一些操作,但在 MySQL:

中是可能的
where 1215 between substring_index(col1, '-', 1) + 0 and substring_index(col1, '-', -1) + 0

即字段被解析为第一个值和最后一个值(然后转换为数字)。

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');

Query:

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)