我目前正在寻找MySQL按价格订购结果,然后输出价格最高的随机数据。 (几个会有相同的价格)
我已经查看了其他stackoverflow问题并找到了答案的人说,如果两个结果是相同的,你不能保证输出哪一个但是听起来有点小故障/黑客,是吗无论如何以最高结果订购一张桌子,然后选择一个随机的结果?
$qry="SELECT * FROM campaignInformation ORDER BY campaignInformation.bidPerCustomer DESC LIMIT 1";
我的两个" bidPerCustomers"是0.25并且我想每次都选择其中一个,但是不要选择一个下注0.11的例子
先谢谢你们! 我知道我将不得不进行查询,然后从结果中选择一个随机的查询,但如果我能在查询开始时这样做会很好。
答案 0 :(得分:0)
如果您只想从具有最大值的那些中选择任何一个,那么您可以干净地构建它:
SELECT * FROM campaignInformation C WHERE C.bidPerCustomer = (
SELECT MAX(D.bidPerCustomer) FROM campaignInformation D
)
这将使您拥有最大值的所有行。然后,您可以从该表中选择一个LIMIT 1,按RAND()
排序SELECT * FROM (
SELECT * FROM campaignInformation C WHERE C.bidPerCustomer = (
SELECT MAX(D.bidPerCustomer) FROM campaignInformation D
)
) AS X
ORDER BY RAND()
LIMIT 1
每个派生表都需要一个别名,因此需要'AS X'
确保您的bidPerCustomer列上有索引,否则会造成严重破坏。