【发布时间】:2015-11-11 14:48:25
【问题描述】:
我的 MySQL 查询有问题:我有超过 100000 条记录, 我想要的只是随机选择 10 个条目,在那里我至少可以看到所有设备一次, 设备名称因用户而异。 该表有许多设备名称,名称在另一个表中,我使用设备 ID 加入该表 每个用户的设备少于 10 台,所以基本上我可以在 LIMIT 10 中看到所有设备,但随机函数有时不会选择其中一些 我用:
SELECT DISTINCT name,signal
FROM my_table
Where name='any_name'
ORDER BY RAND()LIMIt 10
这会选择 10 个条目,但有时某些设备未选择 示例:
+------------+------------+
| Device | Signal |
+------------+------------+
| Router1 | -60 |
| Router2 | -56 |
| Router3 | -102 |
| Router4 | -125 |
| ....... | .... |
+------------+------------+
【问题讨论】:
-
您有多少台设备?如果您有超过 10 个条目,则不可能每台设备都只有 10 个条目。
-
“选定设备”是什么意思?另外,您没有为查询指定任何条件。 (没有 WHERE 子句)
-
怀疑你想要它的名称和信号字段之一。 DISTINCT 指的是整行,而不仅仅是名称字段。
-
@BrianJ : 每个用户的设备少于 10 台
-
GROUP BY name, device可以帮助您特别是与MAX(signal)或MIN(signal)结合使用
标签: mysql