Mysql查找字段之间的数据

标签 mysql range between

我目前有这样的数据

            ID          range_1   range_2
|3V20.0303:3V20.0313|   |3V20.0303| |3V20.0313|

|3V20.0101:3V20.0108|   |3V20.0101| |3V20.0108|

|3V20.0305:3V20.0308|   |3V20.0305| |3V20.0308|

|3V20.0104:3V20.0104|   |3V20.0104| |3V20.0104|

|3V20.0501:3V20.0505|   |3V20.0501| |3V20.0505|

我在精细化范围 1 和范围 2 中包含的数据时遇到问题。 一定是这样的

            ID          range_1   range_2
|3V20.0305:3V20.0308|   |3V20.0305| |3V20.0308|

|3V20.0104:3V20.0104|   |3V20.0104| |3V20.0104|

|3V20.0501:3V20.0505|   |3V20.0501| |3V20.0505|

有人可以帮我吗?

我一直在尝试这样的代码,但都是错误的。

SELECT id, range1, range2 
FROM tbl_test
WHERE range1 BETWEEN range1 AND range2 
   or range2 between range1 and range2

最佳答案

可以进行自连接,其中 range_1 和 range_2 都位于行 range_1 和 range2 之间。

类似这样的:-

SELECT a.*
FROM SomeTable a
INNER JOIN SomeTable b
ON a.range_1 BETWEEN b.range_1 AND b.range_2
AND a.range_2 BETWEEN b.range_1 AND b.range_2
AND (a.range_1 != b.range_1
OR a.range_2 != b.range_2)

关于Mysql查找字段之间的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19535007/

相关文章:

mysql str_to_date 在插入触发器之前

php - MySQL 存储好友

mysql - 将 sql 查询转换为 Doctrine/dql

cocoa - 再现音乐剪辑的一部分( cocoa )

powershell - 在Powershell中,生成距离间隔的最有效方法是什么?

mysql - 将时间差不大于15分钟的行分组

mysql - 将 UTF-8 编码的转储加载到 MySQL

mysql - 在 mysql 中存储范围和单个值的最佳方法

sql - 根据多个条件创建带有附加列的 View

php - Mysql:选择指定点之间的所有数据