我需要從某個表格產品中獲取記錄,從幾個類別中獲取記錄,而沒有將這些記錄集中在幾個類別中。獲取按類別分佈的隨機記錄
我sqlFiddle:http://sqlfiddle.com/#!2/060877/2
正如你可以在SQLFiddle看,我有5個類別和20個產品(當然這是一個例子)。例如,我想獲得10個沒有冒險從5類或更多產品獲得第2類產品的產品,並且只有5個產品的產品數量爲1(或無)。
如果可能的話,如果6個產品,返回3等)。
MySQL是否會自動爲我設置?
我需要從某個表格產品中獲取記錄,從幾個類別中獲取記錄,而沒有將這些記錄集中在幾個類別中。獲取按類別分佈的隨機記錄
我sqlFiddle:http://sqlfiddle.com/#!2/060877/2
正如你可以在SQLFiddle看,我有5個類別和20個產品(當然這是一個例子)。例如,我想獲得10個沒有冒險從5類或更多產品獲得第2類產品的產品,並且只有5個產品的產品數量爲1(或無)。
如果可能的話,如果6個產品,返回3等)。
MySQL是否會自動爲我設置?
我的意思(設定限制,因爲你需要):
(SELECT p.*, c.name AS category
FROM products AS p
INNER JOIN category c ON p.category_id=c.id
WHERE c.id = 1 LIMIT 6)
UNION
(SELECT p.*, c.name AS category
FROM products AS p
INNER JOIN category c ON p.category_id=c.id
WHERE c.id = 2 LIMIT 3)
ORDER BY RAND()
這是一個壞主意。性能低下(5選擇),太多詳細...並沒有解決問題。 – 2014-11-14 19:50:47
我的理解是:你問不同類別的有限數量的行...所以:1)爲整個組設置限制(所以你不能爲每個類別設置具體限制)**或** 2)爲每個類別設置限制=每個子查詢一個 – 2014-11-14 21:08:52
你是否確實沒有其他選擇? – 2014-11-14 22:02:36
也許用一個變量來設定的比例,並使用作爲查詢或子查詢,設置數量在'LIMIT' – 2014-11-14 19:18:12
的限制是預定義的 – 2014-11-14 19:22:25
我的意思是子查詢 – 2014-11-14 19:23:38