मैं SELECT
यादृच्छिक पृष्ठों है कि इसे पसंद किया नहीं किया गया है या एक निश्चित उपयोगकर्ता (uid
उपयोगकर्ता के आईडी) द्वारा भी पसंद नहीं करने के लिए कोशिश कर रहा हूँ।एक विशिष्ट एसक्यूएल स्तंभ को शामिल न करें? अभी तक:
मेरे तालिका संरचना:
OneNight_pages
: (आईडी, शीर्षक) OneNight_pages_likes
: (आईडी, page_id, यूआईडी, स्थिति)
और यह कैसे मैं एक यादृच्छिक पृष्ठ पाने की कोशिश की है:
SELECT
p.id AS page_id,
p.title,
SUM(CASE WHEN l.page_id = p.id AND status = '1' THEN 1 ELSE 0 END) AS likes,
SUM(CASE WHEN l.page_id = p.id AND status = '0' THEN 1 ELSE 0 END) AS dislikes
FROM OneNight_pages_likes l
LEFT JOIN OneNight_pages p on l.page_id = p.id
WHERE l.uid != '1'
GROUP BY page_id
ORDER BY rand()
LIMIT 1
हालांकि यह अभी भी उन पृष्ठों को प्रदर्शित करेगा जिन्हें मैं पहले से पसंद या नापसंद करता हूं, क्योंकि WHERE l.uid != 1
पूरे l.page_id
को बाहर करने के लिए प्रभावित नहीं होता है (क्योंकि किसी विशेष पृष्ठ_आई के लिए अन्य पसंद और नापसंद हैं घ)।
मुझे लगता है मैं एक सबक्वेरी के साथ इस को हल करने के पहले कुछ विशेष एल्गोरिथ्म एक पेज आईडी प्राप्त करने या उपयोग करने की आवश्यकता है लगता है? मैं भी भंडारण के सभी पसंद है और कुकी या सत्र में एक सरणी के रूप में भी पसंद नहीं पृष्ठों के बारे में सोचा है, लेकिन मुझे लगता है कि अगर सही है या कारगर तरीका यह करने के लिए नहीं जानता?
आप नमूना डेटा उपलब्ध कराने और अपेक्षित परिणाम कर सकते हैं? समझने में कठिनाई हो रही है ... – sgeddes