0

我正在使用此 SQL 代码从问题表中选择随机条目。

我想为这个查询添加一个条件。基本上,该表有一个用户 ID 记录来跟踪谁添加了问题。此 id 记录现在应与加入查询结合使用。

基本上:选择随机问题条目并验证它属于给定的用户 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
SELECT *
  FROM Questions JOIN
       (SELECT CEIL(RAND() *
                    (SELECT MAX(Question_ID)
                       FROM Questions WHERE UID='$user_ID')) AS Question_ID
        ) AS r2
       USING (Question_ID) ;
于 2013-09-18T09:59:03.533 回答
0

PHP 中的''引号表示文字字符串,而""输入变量则不可互换。如果使用'''s 你可以通过做输入变量'{$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 回答