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