查找最接近的值-MySQL
如何为多个值找到最接近的值 例如: 我有这张桌子查找最接近的值-MySQL,mysql,Mysql,如何为多个值找到最接近的值 例如: 我有这张桌子 A 1 B 2 C 3 D 7 E 11 F 12 所以- 谢谢试试这个: SELECT t1.col1, t2.col1 FROM mytable AS t1 INNER JOIN mytable AS t2 ON t1.col1 <> t2.col1 LEFT JOIN mytable AS t3 ON t3.col1 <> t2.col1 AND t3.col1 <> t1.col
A 1
B 2
C 3
D 7
E 11
F 12
所以-
谢谢试试这个:
SELECT t1.col1, t2.col1
FROM mytable AS t1
INNER JOIN mytable AS t2
ON t1.col1 <> t2.col1
LEFT JOIN mytable AS t3
ON t3.col1 <> t2.col1 AND t3.col1 <> t1.col1 AND
ABS(t3.col2 - t1.col2) < ABS(t2.col2 - t1.col2)
WHERE t3.col1 IS NULL
ORDER BY t1.col1
试试这个:
SELECT t1.col1, t2.col1
FROM mytable AS t1
INNER JOIN mytable AS t2
ON t1.col1 <> t2.col1
LEFT JOIN mytable AS t3
ON t3.col1 <> t2.col1 AND t3.col1 <> t1.col1 AND
ABS(t3.col2 - t1.col2) < ABS(t2.col2 - t1.col2)
WHERE t3.col1 IS NULL
ORDER BY t1.col1
你可以用这样的小翻译表
CREATE TABLE `translate` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`from` char(1) DEFAULT NULL,
`to` char(1) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `from` (`from`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
INSERT INTO `translate` (`id`, `from`, `to`)
VALUES
(1, 'A', 'B'),
(2, 'B', 'A'),
(3, 'B', 'C'),
(4, 'C', 'B'),
(5, 'D', 'E'),
(6, 'E', 'F'),
(7, 'F', 'E');
样品
你可以用这样的小翻译表
CREATE TABLE `translate` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`from` char(1) DEFAULT NULL,
`to` char(1) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `from` (`from`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
INSERT INTO `translate` (`id`, `from`, `to`)
VALUES
(1, 'A', 'B'),
(2, 'B', 'A'),
(3, 'B', 'C'),
(4, 'C', 'B'),
(5, 'D', 'E'),
(6, 'E', 'F'),
(7, 'F', 'E');
样品
@我很高兴能帮忙。如果这个答案有助于您解决问题,请将其或任何其他答案标记为已接受。@我很高兴能够提供帮助。请将此答案或任何其他答案标记为已接受,如果它有助于您解决问题。