MySQL 加入 And 条件


MySQL Join with And condition

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

但是,结果我得到了一个空白页,所以我想通过添加这样的条件,我弄乱了整个查询。基本上,我不知道如何放置条件...

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) ;

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;