如何选择与随机列MYSQL不同?

时间:2016-05-02 07:35:32

标签: mysql sql

我的表books包含图像,语言和信仰。

我正在获得明确的信仰价值观
SELECT DISTINCT faith, language from books;

获取信仰系列( 15结果),但我想要随机获取image。因此,结果可以显示随机图像的信念。我建议如何做到这一点。

2 个答案:

答案 0 :(得分:1)

查询

select distinct faith, language from books;

从表中选择不同的Faith-Language组合。所以你的表包含两个相同信仰和语言的条目

Faith  Language  Image
1      EN        img1
1      EN        img2
1      FR        img3
1      FR        img4

您的结果只包含一次组合:

Faith  Language
1      EN
1      FR

您的问题尚未明确,您对随机图片的意思是什么。以下是如何获得任意选择的Faith-Language组合的匹配图像之一:

select faith, language, image
from books
group by faith, language;

结果可能如下所示:

Faith  Language  Image
1      EN        img2
1      FR        img3

原因是我们聚合了行。在GROUP BY子句中,我们说每个Faith和Language都需要一个结果行,但我们也选择了Image并且没有指定我们希望每个组看到哪一个(我们可以使用聚合函数)比如MIN或MAX),所以我们只得到一个与DBMS任意选择的Faith-Language组合相匹配的图像。

这已经是你想要的吗?

答案 1 :(得分:0)

感谢大家,我从

获得了解决方案
  

Select random row per distinct field value?

SELECT r.faith, 
(SELECT r1.image FROM books AS r1 WHERE r.faith=r1.faith ORDER BY rand() LIMIT 1) AS image FROM books AS r GROUP BY r.faith;  

每次执行查询时,它会针对每个信仰使用随机 field2 图像获取不同的 field1 faith