【发布时间】:2013-05-29 14:13:03
【问题描述】:
我已经看到this great answer 了解如何从表中选择随机行,它在我的表上效果很好。修改我最终得到的查询:
SELECT r1.clID, clUserName, clCompanyName, clBio
FROM customerlogin AS r1 JOIN
(
SELECT
(
RAND() *
(
SELECT MAX(clID)
FROM customerlogin))
AS clID)
AS r2
WHERE r1.clID >= r2.clID
ORDER BY r1.clID ASC LIMIT 1
但是,我需要更进一步,将可能的答案限制在符合特定条件的答案。
我认为最好的方法是构建一个临时表,仅从原始表中选择有效行,然后从临时表中选择一个随机行,但是我不确定如何去做这样做。我尝试在谷歌上搜索从随机表中创建和选择的各种组合,但到目前为止没有任何乐趣。我假设我只是不知道问我在追求什么的正确方法。
任何人都可以向我指出如何实现这一点的指南或一些示例代码吗?或者,如果有更好的解决方案我忽略了,那么我愿意接受建议。
【问题讨论】: