यह क्वेरी उन सभी आइटम्स को लौटा देगी जिनमें अधिकतम संख्या में टैग समान हैं:
SET @item = 1;
SELECT
goods_id
FROM
links
WHERE
tag_id IN (SELECT tag_id FROM links WHERE example@sqldat.com)
AND example@sqldat.com
GROUP BY
goods_id
HAVING
COUNT(*) = (
SELECT
COUNT(*)
FROM
links
WHERE
tag_id IN (SELECT tag_id FROM links WHERE example@sqldat.com)
AND example@sqldat.com
GROUP BY
goods_id
ORDER BY
COUNT(*) DESC
LIMIT 1
)
कृपया फिडल देखें यहां ।
या यह सभी आइटम वापस कर देगा, यहां तक कि बिना किसी टैग के, सामान्य विवरण में टैग की संख्या के अनुसार आदेश दिया गया है:
SELECT
goods_id
FROM
links
WHERE
example@sqldat.com
GROUP BY
goods_id
ORDER BY
COUNT(CASE WHEN tag_id IN (SELECT tag_id FROM links WHERE example@sqldat.com) THEN 1 END) DESC;