首页 > 解决方案 > MySQL:将 100 个随机数的列表插入一个字段然后显示它们

问题描述

我有一个包含 500 个报价的表,每个报价都有一个从 1 到 500 的 ID。这个表有 2 列:QuoteID 和 Quote。

一位客户在订单页面上订购了 100 个随机报价。

我需要生成 100 个介于 1 和 500 之间的随机数,并以某种方式将其插入到该客户订单的 Customer 表中。Customer 表有 2 列:CustomerID 和 QuotesOrdered。

然后,在“显示”页面上,我需要显示这些引号中的每一个。它必须查看 QuotesOrdered 列中列出的 100 个随机 ID 号,然后从 Quotes 表中提取每个 ID 以显示它们。

有没有一种简单的方法可以做到这一点?我是否会将 100 个数字生成到一个数组中,然后以某种方式将此数组插入到 Customer 表的 QuotesOrdered 列中,然后遍历数组并显示与 Quotes 表中的该 ID 号相关联的每个报价?

任何有关如何在逻辑上做到这一点的帮助将不胜感激。

标签: phpmysqllogic

解决方案


我不确定为什么您需要在表格中存储随机数然后选择引号。您可以使用以下查询直接选择 100 个随机报价:

select quoteID, quote from quotes order by rand() limit 100;

现在,如果出于某种原因,您确实需要在customers表中为给定客户保留 100 个随机报价编号,那么:

insert into customers
select :customerID, quoteID from quotes order by rand() limit 100

...:customerID应该用相关客户的ID替换。

然后当你想显示它们时:

select q.quoteID, q.quote
from customers c
inner join quotes c on c.quoteID = q.quoteID
where c.customerID = :customerID

推荐阅读