0

私の質問は非常に簡単です。同じ SQL ステートメントで 9 つのランダムなレコードと 1 つの定義済みレコードを選択するにはどうすればよいですか? これまでに考えられるのは、1 つのパートナー レコード (定義されたもの) のみを返し、他の 9 つのランダムなレコードは返さないということだけです。

$sql2 = "SELECT * FROM table WHERE filename = '$partn' AND filename != '$x' ORDER BY RAND() LIMIT 10";

詳しく説明すると、10 個のレコードが返される必要があります。いずれも「$x」ではなく、そのうちの 1 つが「$partn」である必要があり、さらに 9 つのランダムなレコードが返される必要があります。それらはすべてランダムな順序で表示される必要があります。

どんな助けでも大歓迎です!:)

4

2 に答える 2

4

ユニオンを使用: http://dev.mysql.com/doc/refman/5.0/en/union.html

(select the one you want)
union
(select 9 randoms that arent the one you want)
于 2012-05-30T15:44:25.000 に答える
3
(SELECT * FROM table WHERE file='$x')
UNION ALL
(SELECT * FROM table WHERE file<>'$x' ORDER BY RAND() LIMIT 9)
于 2012-05-30T15:45:11.177 に答える