我需要根据列col1
值选择结果。
col1,col2
是文本字段类型。
+-----+-----------+------+
| id | col1 | col2 |
+-----+-----------+------+
| 1 | 1200-1220 | XXX |
+-----+-----------+------+
| 2 | 1455-1460 | YYY |
+-----+-----------+------+
示例查询:
SELECT col2 FROM TABLE_NAME WHERE col1 = 1215
我想要的结果:
'XXX'
我如何得到上述结果。
如果我插错了,我需要插入一行来获取结果。
请告知。
答案 0 :(得分:4)
这需要一些操作,但在MySQL中是可能的:
where 1215 between substring_index(col1, '-', 1) + 0 and substring_index(col1, '-', -1) + 0
也就是说,该字段被解析为第一个和最后一个值(然后转换为数字)。
答案 1 :(得分: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)