【问题标题】:MySQL: Insert list of 100 random numbers into one field then display them [closed]MySQL:将 100 个随机数的列表插入一个字段然后显示它们[关闭]
【发布时间】:2019-10-25 22:07:43
【问题描述】:

我有一个包含 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 号相关联的每个报价?

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

【问题讨论】:

    标签: php mysql logic


    【解决方案1】:

    我不确定您为什么需要在表格中存储随机数才能选择引号。您可以通过以下查询直接选择 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
    

    【讨论】:

    • 第一个想法会在每次刷新页面时显示 100 个不同的引号,对吧?我想在表中插入 100 个特定的随机数,这样他们每次都能看到相同的 100 个引号,而不是不同的引号。
    • @FrostedKrispie:是的,您的理解是正确的。因此,您可以使用我的答案第二部分中提供的解决方案。
    猜你喜欢
    • 2014-12-13
    • 2013-03-06
    • 1970-01-01
    • 2015-01-06
    • 2013-12-08
    • 1970-01-01
    • 2013-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多