mytable
pid name field
=== ==== =====
1 A1 0
2 A2 1
3 A3 1
4 A4 0
5 A5 0
这是我的桌子结构。这里我想随机选择4行,所以在我的查询中使用rand()mysql函数
我的问题是
我怎样配对成排呢?我的意思是,我想选择pid 2和3,总是一个接一个。
我需要按下面的顺序。我不想把这对A2和A3弄坏
A1 A2 A3 A4
或A2 A3 A4 A1
或A2 A3 A4 A5
或A4 A5 A2 A3
等我使用了下面的查询,但它对我不起作用
SELECT * FROM mytable ORDER BY RAND() ASC limit 0,4
最佳答案
特伯德很接近他的答案,他只是随机排序,当你想通过PID排序时,在得到你想要的随机行和A2和A3相关行后:
(
SELECT *
FROM `mytable`
WHERE
name ='A2' OR
name ='A3'
LIMIT 2
)
UNION
(
SELECT DISTINCT *
FROM `mytable`
WHERE
name !='A2' OR
name !='A3'
ORDER BY RAND( ) LIMIT 2
)
ORDER BY `pid`
关于mysql - 如何在MySQL中选择随机行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5104141/