我正在嘗試創建一個查詢,它將爲第一個類別選擇一個項目,爲第二個項目選擇兩個項目,爲第三個類別選擇兩個項目,爲其他項目選擇一個項目。MySql隨機類別限制選擇
問題是它必須是一個查詢。我認爲這是可能的,但我無法弄清楚。
我正在嘗試創建一個查詢,它將爲第一個類別選擇一個項目,爲第二個項目選擇兩個項目,爲第三個類別選擇兩個項目,爲其他項目選擇一個項目。MySql隨機類別限制選擇
問題是它必須是一個查詢。我認爲這是可能的,但我無法弄清楚。
此:
SELECT *
FROM (SELECT i.*
FROM ITEM i
WHERE i.categoryid = 1
LIMIT 1),
(SELECT i.*
FROM ITEM i
WHERE i.categoryid = 2
LIMIT 2),
(SELECT i.*
FROM ITEM i
WHERE i.categoryid = 3
LIMIT 2)
...會選擇第一類一個項目,兩個項目的第二和2項爲第三類。我會使用UNION ALL
而不是UNION
,因爲它不會刪除重複項,所以速度更快。在不瞭解數據模型(涉及表格)的情況下,很難說什麼會最好。
Ehm,這是一個交叉連接,它不會返回5行。 – 2009-10-19 06:40:40
聽起來像你需要SQL UNION
operator。正如在評論中提到的那樣,我們需要知道你的桌子是什麼樣的,以提供更多的幫助。
你的桌子是什麼樣的? – random 2009-10-18 12:41:43