从表中选择随机但不同的行 - MySQL

时间:2017-03-17 05:10:18

标签: php mysql

我有一个包含各种类别的表格,以及每个类别的多个条目。

Word    |  Category  
------------------  
Apple   |  Food  
Orange  |  Food  
Grapes  |  Food  
Mango   |  Food  

我希望为“food”类别检索3个随机行,我为此运行以下查询

$query = "SELECT * FROM table WHERE category='food' ORDER BY RAND() LIMIT 3"

$fetch_row = mysqli_query($db_connect, $query);
        while ($row = mysqli_fetch_array($fetch_row)) {
            array_push($words, $row['word']);
        }

然而,当我打印数组$ words的内容时,它们有时会重复(不是所有运行),例如;

  

Apple,Orange,Apple

即。它并不总是独特的。我想为给定的类别选择随机但独特的单词。我究竟做错了什么?我已经尝试过其他相关的答案,但我一直搞砸了。我也尝试了以下查询;

SELECT * FROM table WHERE category='food' GROUP BY category ORDER BY RAND() LIMIT 3

但这仍然偶尔会重复。

1 个答案:

答案 0 :(得分:2)

由于word列具有相同的值,请执行以下GROUP BY word: -

SELECT * FROM table WHERE category='food' GROUP BY word LIMIT 3