2015-10-26 57 views
0

我不知道如何給出一個代碼示例,所以我會盡我所能解釋這一點。在MySQL中選擇最少量的兩種數據類型?

我有一個表列,給出了用戶的ID和他們有的網站。每個客戶端可以在表中有多行。

如果您的查詢中有一定數量的行,是否可以爲MySQL提供最少數量的行來檢索特定的ID?

因此,假設你選擇了10行,你可以說「給我10行,最少3行屬於用戶5,如果用戶5沒有3行,只要補足10從其他用戶的行「。

+0

你可能至少需要兩個查詢。一個爲一個用戶獲取3 <= x <10,計算出您獲得的數量,然後從其他用戶獲取10-x。 –

+0

謝謝你的Marc – Shaun

回答

1

除非我在這裏失去了一些東西是基於馬克乙建議的查詢:

SELECT * FROM 
    ((SELECT * FROM userWebSites WHERE userId = 5 LIMIT 10) 
    UNION 
    (SELECT * FROM userWebSites WHERE userId <> 5 LIMIT 10)) AS Merged 
LIMIT 10 

但是它總是會返回其他用戶相同的行,以填補缺失的行。

+0

謝謝Forgues。只需要完成一些會計工作,那麼我今天晚些時候就會和你的問題一起玩。 – Shaun

+0

謝謝Forgues。我添加了一些邏輯來處理遞增行,所以它不總是返回相同的,但是這幾乎涵蓋了我需要的東西! – Shaun

+0

不客氣! – ForguesR

相關問題