我已经看到了这个关于如何从表中选择随机行的好答案,它在我的表上效果很好。修改我最终得到的查询:
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
但是,我需要更进一步,将可能的答案限制为符合某些标准的答案。
我认为最好的方法是构建一个临时表,只从原始表中选择有效行,然后从临时表中选择一个随机行,但是我不确定如何去做。我尝试在谷歌上搜索从随机表中创建和选择的各种组合,但到目前为止没有任何乐趣。我假设我只是不知道问我在追求什么的正确方法。
任何人都可以向我指出如何实现这一点的指南或一些示例代码吗?或者,如果我忽略了更好的解决方案,那么我愿意接受建议。