如何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)
我需要 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)