【问题标题】:How to get some randomized concats based on 2 columns from 1 table?如何根据 1 个表中的 2 列获得一些随机连接?
【发布时间】:2010-03-17 08:15:47
【问题描述】:

我有一个大型用户数据库 (13k+),出于某种原因,我需要创建随机名称。 users 表有“first_name”和“last_name”。现在我想要两个完全随机的行的 10 个全名和姓氏连接。用 SQL 也能做到吗?

我的另一个想法是创建一个 full_names 和 last_names 表……但这不会有太大的挑战。

哦,它不应该占用太多性能:)(所以按 rand() 排序不是一个选项;))

【问题讨论】:

    标签: sql random


    【解决方案1】:

    我不明白“两个完全随机的行的 10 个全名和姓氏的连接”,所以这可能不是您的最终答案,但它应该会引导您朝着正确的方向前进。如需更完整的答案,请提供您正在查找的内容的一些示例输出以及您的数据库架构。

    这通常应该在代码中完成,而不是在 SQL 中。但是,在 SQL 中是可能的。有一个要求。您必须有一个增量整数键列。例如,密钥应该从 1 开始,到 13000 结束。

    RAND() 实现可能会有所不同,具体取决于您的数据库供应商。

    这是查询:

    SELECT CONCAT(u1.first_name, ul.last_name) AS full_name
    FROM users
    WHERE mykey = FLOOR(1 + (RAND() * 13000))
    

    如果密钥有间隙,它会变得有点棘手,随机性将有利于间隙,所以我希望没有间隙。

    【讨论】:

      猜你喜欢
      • 2021-12-28
      • 2019-06-22
      • 2011-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-27
      • 2021-11-02
      • 1970-01-01
      相关资源
      最近更新 更多