簡體   English   中英

如何使用隨機列MYSQL選擇Distinct?

[英]How to select Distinct with random column MYSQL?

我有一些包含圖像,語言,信仰的桌子books 我正在與眾不同的信念價值觀

SELECT DISTINCT faith, language from books;

這獲取了信仰系列( 15個結果 ),但我也想隨機獲取image 因此,結果可以顯示隨機圖像的可信度。 我該怎么做,請提出建議。

查詢

select distinct faith, language from books;

從表中選擇不同的信仰-語言組合。 因此,您的表中包含相同信仰和語言的兩個條目

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

您的結果將僅包含每個組合一次:

Faith  Language
1      EN
1      FR

從您的問題還不清楚,您對隨機圖像的含義是什么。 這是如何獲取任意選擇的信念語言組合的匹配圖像之一的方法:

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

結果可能如下所示:

Faith  Language  Image
1      EN        img2
1      FR        img3

原因是我們匯總了行。 在GROUP BY子句中,我們說我們希望每個信念和語言一行,但我們也選擇了Image,並且沒有指定我們希望每個組看到哪個行(我們可以使用MIN或MAX這樣的聚合函數來完成該行),因此我們只獲得與DBMS任意選擇的與信念語言組合相匹配的圖像之一。

這已經是您想要的嗎?

謝謝大家,我得到了解決方案

為每個不同的字段值選擇隨機行?

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

暫無
暫無

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

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