mysql - 如何使用 SQL 查询从数据库表中获取离散范围内的值

标签 mysql

假设数据库表包含值

[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]

注意:此模式不是必需的(排序顺序和 1-30 的值)。

因此使用查询我可以获得 10-20 之间的值,依此类推。

但在这里我想知道如何从不同范围获取值。 即:

  • 0-5 范围内的一个随机值
  • 一个值的范围为 6-10
  • 11-15 范围内的一个值
  • 16-20 范围内的一个值

...等等。

因此查询的输出将如下所示:

[2,7,14,16,23,29,...] 

[1,6,11,18,22,26,...]

有什么办法可以实现这个目标吗?

最佳答案

尝试一下

(SELECT id as r1 FROM `t1` WHERE id between 1 and 5 ORDER BY RAND() limit 0,1)

 union 

(SELECT id as r1 FROM `t1` WHERE id between 6 and 10 order by RAND() limit 0,1)

 union 

(SELECT id as r1 FROM `t1` WHERE id between 11 and 15 order by RAND() limit 0,1)

 union 

 (SELECT id as r1 FROM `t1` WHERE id between 16 and 20 order by RAND() limit 0,1)

union 

(SELECT id as r1 FROM `t1` WHERE id between 21 and 25 order by RAND() limit 0,1)

union 

(SELECT id as r1 FROM `t1` WHERE id between 26 and 30 order by RAND() limit 0,1)

这是指定范围的查询,如果您想让它成为动态范围,您需要在拥有最多 N 的所有范围后动态地进行此查询。

关于mysql - 如何使用 SQL 查询从数据库表中获取离散范围内的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25721555/

相关文章:

php - 在哪里可以找到 MySQLi 中所有可能的错误

mysql - Bluemix ClearDB MySQL 容量限制

MySQL在同一个表中选择不同的值作为不同的列?

mysql - MySQL添加外键的方法

php - 是否可以连接这些 MySQL 表 attendee 和 message?

mysql - 非常慢的 MySQL 代码(内联和 JOINS)

MySQL - 将 ID 作为数组存储在表中

PHP MYSQL 自动换行

mysql - 左连接和连接列显示空白而不是 (null)

mysql - 如何在 phpmyadmin 数据库中执行 XML 数据