我想在MySQL中随机化一个组成的数据集。数据如下:
|---------|--------|
|Column 1 |Column 2|
|---------|--------|
| A | 1 |
|---------|--------|
| B | 2 |
|---------|--------|
| C | 3 |
|---------|--------|
并且在Shuffling之后应该是这样的:
|---------|--------|
|Column 1 |Column 2|
|---------|--------|
| C | 2 |
|---------|--------|
| A | 3 |
|---------|--------|
| B | 1 |
|---------|--------|
有没有一个简单的函数可以做到这一点?只找到RAND((,但在这种情况下,用现有的("Real"(引用按随机顺序选择它们是不够的。
提前感谢!
WITH
cte1 AS ( SELECT column1, ROW_NUMBER() OVER (ORDER BY RAND()) rn FROM src_table ),
cte2 AS ( SELECT column2, ROW_NUMBER() OVER (ORDER BY RAND()) rn FROM src_table )
SELECT cte1.column1, cte2.column2
FROM cte1
JOIN cte2 USING (rn)
小提琴
每个列的值都是单独随机枚举的,然后通过这些随机数将这些值重新组合成对。