当前位置: 首页 > 面试题库 >

MySQL查询为每行分配一个唯一的随机数

颜镜
2023-03-14
问题内容

我希望将一列附加到我的表中,该列将是从顺序列表=到行数的随机数。

因此,如果我的表有 999行 ,则 数字1到999将被随机且唯一地分配

现在,我想到可以添加一个虚拟的TempRandomColumn =
Rand(),然后对其进行排序,然后使用PHP依次添加数字。但这意味着999条MySQL语句。

有没有办法使用单个MySQL语句来做到这一点?

感谢您的指导。


问题答案:
SET @r := 0;
UPDATE  items2
SET     author_id = (@r := @r + 1)
ORDER BY
        RAND()


 类似资料:
  • 问题内容: 我进行了很多搜索,但找不到有用的答案: 我想通过用户给我一个开始和结束日期来列出用户定义的时间段的总计。从开始日期到开始日期之间的每次总计应该相加,并在每一天添加1天。因此最后一行给出了从开始到结束日期的总计。示例:-给定期间=开始2013-01-01,结束= 2013-01-31 所以我有一个查询谁计算所有天: 我有一个查询谁每天计算总数 现在将这两者结合起来很难得到我的最终结果。

  • 问题内容: 我有一个字符串列表。我想为每个字符串分配一个唯一的数字(确切的数字并不重要),并依次使用这些数字创建一个长度相同的列表。以下是我的最佳尝试,但由于以下两个原因,我不满意: 假定相同的值彼此相邻 我必须以开头列表,否则输出将不正确 我的代码: 我想使代码更通用,因此可以使用未知列表。有任何想法吗? 问题答案: 无需使用外部库(检查 EDIT 以获取解决方案),您可以按照以下步骤进行操作:

  • 问题内容: 我有一张桌子,看起来像: 我需要查询该表以按价格对所有行进行排序,但始终显示一个随机行,其顶部具有VIP = 1。因此,例如,查询应返回: 当您刷新页面时,行ID 5可能会成为第一行,因为它的VIP = 1。 我目前有我的查询,看起来像: 这样做的问题是,它将仅显示一个VIP行。我将如何正确查询这些数据? 问题答案: 使用。这是一种方法: 这使用子查询来标识要保留在顶部的一行。然后,它

  • 问题内容: 我有一个MySQL数据库表,用于存储照片的URL。我需要从特定类型的数据库中提取5条随机记录。我可以这样拉出5条记录: 现在,我需要帮助尝试弄清楚如何每次提取不同的记录。如何从该结果集中检索随机行? 问题答案: 您可以用来获取查询中的随机行。

  • 有人愿意帮我完成一个jdbctemplate查询吗? 只需要获取具有唯一id的行,但存在重复的行,因为其他列(如date)具有不同的值。我需要最好得到最长日期,结果集不应该有任何重复项:x个 输出: 这几乎有效,但不完全有效。可悲的是,有重复的。 这是我正在使用的两张桌子。 PS.:使用PostgreSQL

  • 问题内容: 我想要一个有效的MySQL存储过程: 我想我只是想让MySQL回答这个问题,但我对光标的理解却不够好:如何为查询返回的每一行执行一次存储过程? 问题答案: “循环”(for-each,while等)和“分支”(if-else,call等)等概念是 过程性的 ,在诸如SQL这样的 声明性 语言中不存在。通常,人们可以以声明的方式表达自己期望的结果,这将是解决此问题的正确方法。 例如,如果