MySQL加入和条件

时间:2013-09-18 09:53:42

标签: php mysql sql join conditional-statements

我正在使用此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'

但是我得到一个空白页面,所以我想通过添加这样的条件,我搞乱了整个查询。基本上,我无法弄清楚如何处理这个条件......

2 个答案:

答案 0 :(得分: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) ;

答案 1 :(得分: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;