【发布时间】:2021-07-03 18:56:37
【问题描述】:
我创建了两张表,一张用于存储人员,另一张用于存储他们选择的 5 个数字。现在,每个人都可以输入自己喜欢的任意数字,他们的五个数字与他们的personid相对应。我的目标是创建代码,从一组数字中选择一个随机数,比如说 4 个人。
Person
personid(PRIMARY KEY)
name
numberlist
numid(PRIMARY KEY)
personid(FOREIGN KEY)
num1
num2
num3
num4
num5
我有以下疑问:
SELECT num1,num2,num3,num4,num5
FROM Project.numberlist
ORDER BY RAND ()
LIMIT 1
代码有效,但会输出随机行。一个示例输出是:
[(12, 15, 23, 54, 7)]
如何设计查询以使其仅输出一个数字?对于这个例子,它会随机输出一个数字,比如 23 或 15,而不是整行。
【问题讨论】:
-
首先修复您的架构,以便您选择随机行,而不是随机列
-
那是否意味着我必须创建三个表而不是两个?
-
不一定。您仍然可以有两个表,但您的第二个表将被规范化(例如
id,num_id,person_id,val),其中 id 是 PRIMARY,并且 (num_id,person_id) 是 UNIQUE。
标签: mysql database list random syntax