我不知道如何給出一個代碼示例,所以我會盡我所能解釋這一點。在MySQL中選擇最少量的兩種數據類型?
我有一個表列,給出了用戶的ID和他們有的網站。每個客戶端可以在表中有多行。
如果您的查詢中有一定數量的行,是否可以爲MySQL提供最少數量的行來檢索特定的ID?
因此,假設你選擇了10行,你可以說「給我10行,最少3行屬於用戶5,如果用戶5沒有3行,只要補足10從其他用戶的行「。
我不知道如何給出一個代碼示例,所以我會盡我所能解釋這一點。在MySQL中選擇最少量的兩種數據類型?
我有一個表列,給出了用戶的ID和他們有的網站。每個客戶端可以在表中有多行。
如果您的查詢中有一定數量的行,是否可以爲MySQL提供最少數量的行來檢索特定的ID?
因此,假設你選擇了10行,你可以說「給我10行,最少3行屬於用戶5,如果用戶5沒有3行,只要補足10從其他用戶的行「。
除非我在這裏失去了一些東西是基於馬克乙建議的查詢:
SELECT * FROM
((SELECT * FROM userWebSites WHERE userId = 5 LIMIT 10)
UNION
(SELECT * FROM userWebSites WHERE userId <> 5 LIMIT 10)) AS Merged
LIMIT 10
但是它總是會返回其他用戶相同的行,以填補缺失的行。
你可能至少需要兩個查詢。一個爲一個用戶獲取3 <= x <10,計算出您獲得的數量,然後從其他用戶獲取10-x。 –
謝謝你的Marc – Shaun