0

この SQL コードを使用して、質問テーブルからランダムなエントリを選択しています。

このクエリに条件を追加したいと思います。基本的に、テーブルには質問を追加したユーザーを追跡するためのユーザー ID レコードがあります。この ID レコードは、Join Query と組み合わせて使用​​されます。

基本的に: ランダムな質問エントリを選択し、それが指定されたユーザー ID に属していることを確認します。

SELECT *
  FROM Questions JOIN
       (SELECT CEIL(RAND() *
                    (SELECT MAX(Question_ID)
                       FROM Questions )) AS Question_ID
        ) AS r2
       USING (Question_ID) ;

私はこのような条件を追加しようとしました:

And UID='$user_ID'

ただし、結果として空白のページが表示されるため、このような条件を追加することで、クエリ全体を台無しにしていると思います。そもそも、条件の付け方がわかりません...

4

2 に答える 2

0

''PHPの引用符はリテラル文字列を示しますが、""入力変数は交換できません。を使用する場合は、 を''実行して変数を入力できます'{$var}'

テーブルが非常に大きい場合、RAND() の実行が遅くなるため、PHP で生成されたランダムな ID を渡す方がよいでしょう。

PHP からランダム:

SELECT *
FROM Questions as q
WHERE q.UID = $user_ID AND q.ID = $randomID;\

SQL からのランダム:

SELECT *
FROM Questions as q
WHERE q.UID = $user_ID
ORDER BY RAND()
LIMIT 1;
于 2013-09-18T10:20:31.677 に答える