随机从浮点分组MySQL

时间:2016-02-13 14:28:07

标签: mysql

我有一个出价表,我想选择一个随机值。但我想按出价金额对其进行分组。

+--------+------------+
| bid_id | bid_amount |
+--------+------------+
|      1 | 0.00002    |
|      2 | 0.00002    |
|      3 | 0.00001    |
|      4 | 0.00002    |
|      5 | 0.00001    |
|      6 | 0.00002    |
+--------+------------+

例如,我想选择一个随机值,其中bid_amount为0.00002。这是我的疑问:

SELECT bid_id FROM bids 
WHERE bid_amount = ? 
ORDER BY RAND()
LIMIT 1

但由于某种原因,它似乎不起作用。好像在mysql中有一些奇怪的东西,我在这种情况下似乎无法正确匹配它们。

我是否可以使用GROUP BY bid_amount以某种方式执行此操作,然后使用LIMIT 1LIMIT 1,1选择第一行或第二行?

换句话说,从GROUP BY中选择一个随机值?

1 个答案:

答案 0 :(得分:1)

这是浮点值的问题。一种解决方案是使用小数。否则,尝试类似:

SELECT bid_id
FROM bids 
WHERE ABS(bid_amount - ?) < 0.0000001
ORDER BY RAND()
LIMIT 1