簡體   English   中英

為MySQL生成一個特定的隨機數

[英]Generate a specific random number for mysql

嗨,我正在做一個程序給問題,但是這個問題需要針對不同的用戶,現在我需要在mysql中隨機生成問題,嘗試使用RAND(),但是我不能保證它可以很好地滿足我的要求,這不是工作:

SELECT * FROM oscuro.answers
INNER JOIN questions ON answers.question_id = questions.id
INNER JOIN sub_categories ON questions.sub_category_id = sub_categories.id
WHERE sub_categories.category_id = 1 AND questions.id > RAND();

我需要questions.id表中所有記錄的隨機數,這應該給出一個包含該問題所有答案的隨機問題。 我如何只為該字段生成隨機數?

您可以對子查詢進行聯接。 一個簡單的例子:

> SELECT * FROM `foo`;
+----+
| id |
+----+
|  1 |
|  2 |
|  3 |
|  4 |
|  5 |
+----+
> SELECT * FROM foo 
>   INNER JOIN 
>   (SELECT RAND() as random_number)
>     as sqy;

+----+---------------------+
| id | random_number       |
+----+---------------------+
|  1 | 0.16365532499147142 |
|  2 | 0.16365532499147142 |
|  3 | 0.16365532499147142 |
|  4 | 0.16365532499147142 |
|  5 | 0.16365532499147142 |
+----+---------------------+

所以你的情況

> SELECT * FROM oscuro.answers
>   INNER JOIN questions
>     ON answers.question_id = questions.id
>   INNER JOIN sub_categories
>     ON questions.sub_category_id = sub_categories.id
>   INNER JOIN (SELECT RAND() as random_number) as sqy
> WHERE
>   sub_categories.category_id = 1
> AND
>   questions.id > random_number;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM