- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想获得一个表的 id
与其自身的随机组合。
SELECT id FROM t1
SELECT id as id2 FROM t1 ORDER BY RAND()
SELECT id as id3 FROM t1 ORDER BY RAND()
我如何JOIN
这些查询来获取
SELECT id,id2,id3
1 random_id random_id
2 random_id random_id
3 random_id random_id
4 random_id random_id
5 random_id random_id
换句话说,JOIN
将这三个 SELECT
并排放置的意义何在。
创建一个唯一的组合是有益的,但是使用上面的查询ORDER BY RAND()
可以重复相同的id
到id2
和 id3
。前者是理想的,但后者对我来说已经足够了。
最佳答案
如果您使用的是 MySQL 8+,则 ROW_NUMBER
可能适用于此:
WITH cte AS (
SELECT id,
ROW_NUMBER() OVER (ORDER BY id) rn1,
ROW_NUMBER() OVER (ORDER BY RAND(UNIX_TIMESTAMP())) rn2,
ROW_NUMBER() OVER (ORDER BY RAND(UNIX_TIMESTAMP()+1)) rn3
FROM t1
)
SELECT
t1.id,
t2.id AS id2,
t3.id AS id3
FROM cte t1
INNER JOIN cte t2
ON t1.rn1 = t2.rn2
INNER JOIN cte t3
ON t1.rn1 = t3.rn3;
下面的演示来自一个示例表,其中包含从 1 到 10 的 id
值。
关于mysql - 如何使用 ORDER BY RAND() 将同一张表与自身连接起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58527539/
PHP是这样实现随机数生成的吗? 假设我想计算是或否。每次我都有一定的概率百分比(比如:本例中为 0.05%)。 我愿意: $possibilities = 100 / $probabilityPer
我正在尝试将一段代码从 perl 移植到 php。 perl 代码片段是 akamai 的视频点播链接生成脚本的一部分。该脚本根据视频文件的位置/URL 生成种子(对于单个 URL,它始终是不变的)。
我观察到 rand() 库函数在一个循环中只被调用一次时,它几乎总是产生正数。 for (i = 0; i < 100; i++) { printf("%d\n", rand()); } 但是
我每个循环都需要两个随机数,但不能使用前一个循环的随机数。我迷路了,我已经搜索过,但不知道该怎么做。请帮忙!我把我的代码放在下面。因此,我具体需要的是生成存储在 n1 和 n2 中的两个随机数。然后,
在 MySQL 中使用 RAND() 从一个巨大的表中获取单个随机行非常慢: SELECT quote FROM quotes ORDER BY RAND() LIMIT 1 Here is an a
我正在尝试将 matlab 代码移植到 c++ 中,并在 matlab 中找到了 rand 的用法。matlab的rand函数和c++的rand()函数一样吗?如果没有,在 C++ 或 opencv
我正在尝试将 matlab 代码移植到 c++ 中,并在 matlab 中找到了 rand 的用法。matlab的rand函数和c++的rand()函数一样吗?如果没有,在 C++ 或 opencv
我在 golang 和 C 中使用相同的种子,但得到不同的随机数我知道 php 使用 libc rand(),golang 怎么样? //golang: rand.Seed(12345); rand.
我正在开发的游戏中有以下方法: def search if rand(5) == 0 weapon = Weapon.offset(rand(Weapon.count)).fi
我需要在 Python 中从 C++ 实现 rand 和 rands 来重新加密一堆文件。但似乎无法正确处理。 我有一个 exe 可以将文件解密为文本,我还需要源代码,在编辑文件后我需要使用相同的方法
我在每次插入时将 RAND() 值存储在表中,然后运行以下查询以从表中获取随机行。 select id from test where random_value >= RAND() LIMIT 5;
这是一个看似常见的问题,所以我希望我听起来没有多余。但是从 rand() 返回的范围应该在 0 和 RAND_MAX 之间,但是,当我执行一个非常简单的 rand 语句时,我总是在非常小的范围内获得返
Random#rand 和 Kernel#rand 真的有区别吗? 据我所知,他们使用了不同的“C”函数。 最佳答案 它们在使用 Range 调用时表现相同,但在其他几种情况下则不同。 当使用负整数-
我以实现 RSA 为例。几周前,它似乎工作正常。 然而,现在 key 的生成需要很长时间(>10 秒)。我已将范围缩小到以下行: import "crypto/rand" p, _ := rand.P
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 3 年前。 Improve th
我正在使用全文搜索来提取行。 我根据分数 (ORDER BY SCORE) 对行进行排序,然后在前 20 行 (LIMIT 20) 中,我想对结果集进行兰德 (RAND)。 因此,对于任何特定的搜索词
我使用 rand.Intn(n int) 函数交换 slice 内的元素,但每次运行该程序时,输出都是 slice 内相同的随机元素序列。 我在这里缺少什么明显的东西? 最佳答案 来自 documen
Go 有两个随机数包: crypto/rand,它提供了一种获取随机字节的方法 math/rand,它有一个很好的洗牌算法 我想使用 math/rand 中的 Perm 算法,但要为其提供高质量的随机
我有如下查询: select s.name, m.c_id, m.r_stat, m.l_upd, m.desc, c.email from manual m join selling s join
运行以下查询时: SELECT productid FROM product WHERE productid=ROUND(RAND()*(SELECT MAX(productid) FROM prod
我是一名优秀的程序员,十分优秀!