SQL-Abfrage: Effiziente Schnittmengen für mehrere Tags
Bei der Arbeit mit einer Tabelle mit Tags, die Inhalten zugewiesen sind, ist es häufig erforderlich, Inhalte zu identifizieren das zu bestimmten Tag-Kombinationen passt. Ein naiver Ansatz mit verschachtelten Unterabfragen kann für mehrere Tags schnell unhandlich werden.
Um diese Schnittmenge effizient zu erreichen, können wir die folgende SQL-Abfrage nutzen:
SELECT contentID FROM tags WHERE tagID in (334, 338, 342) GROUP BY contentID HAVING COUNT(DISTINCT tagID) = 3;
Erklärung:
Durch Ersetzen der spezifischen Tag-IDs Mit einer parametrisierten Liste und der Anpassung der Anzahl in der HAVING-Klausel wird diese Abfrage für eine beliebige Anzahl von Tags generalisierbar:
SELECT contentID FROM tags WHERE tagID in (...) --taglist GROUP BY contentID HAVING COUNT(DISTINCT tagID) = ... --tagcount;
Dieser optimierte Ansatz bietet eine robuste Lösung zum effizienten Finden der Schnittmenge mehrerer Tags in einer Tabelle .
Das obige ist der detaillierte Inhalt vonWie kann man in SQL effizient Inhalte finden, die zu mehreren Tags passen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!