从mysql获取随机值

时间:2013-12-09 05:25:07

标签: mysql ruby-on-rails

我有一个名为users的表,它具有唯一的用户名,并且在注册时保存在mysql数据库中的每个用户名都有4个问题。我想要做的是制作一个两步登录表单,其中人首先输入用户名和密码,然后一次点击提交我从用户回答的数据库中提取一个问题,并将其作为第二步登录提供。我想要的第二个问题是随机拍摄。另外,我想跟踪不正确的尝试次数。但我坚持第二步,如何随机和检查不正确的登录尝试。需要一点帮助。我正在使用mysql作为后端并使用RoR。我的表看起来像这样

Members
{ username
password
question1
question2
question3
question4
answer1
answer2
answer3
answer4 }

所有字段都是字符串!

2 个答案:

答案 0 :(得分:0)

以下代码生成一个随机数(100 - 500):

FLOOR(RAND() * 401) + 100

通常,FLOOR(RAND() * (<max> - <min> + 1)) + <min>会生成介于两者之间的数字。

答案 1 :(得分:0)

如果您需要随机选择其中一个问题字段,请按以下方式访问该属性:

self.send("question#{(1..4).to_a.sample}")

其中self是你的会员实例。

如果您需要对“回答”执行相同的操作,这可能是因为您必须验证用户的条目,那么这将实现更完整的实施。

my_random = (1..4).to_a.sample
fail_count = 0
question = self.send("question#{my_random}") #display to user
if user_reply == self.send("answer#{my_random}")   #validate against user's reply
    p 'success'
else
    fail_count += 1
end