Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich eine Datenbankspalte mit durch Kommas getrennten Werten effizient abfragen?
Verarbeiten von Abfragen mit mehreren Werten in einer einzelnen Spalte
In diesem Szenario stoßen wir auf eine Tabelle mit einer Spalte namens „untergeordnete Elemente“, die speichert durch Kommas getrennte Namen. Das Ziel besteht darin, Datensätze abzurufen, in denen ein bestimmtes Kind, beispielsweise „Alex“, in dieser Spalte vorhanden ist.
Die Verwendung einer einfachen Gleichheitsprüfung (z. B. „WHERE children = ‚Alex‘“) schlägt jedoch fehl, da mehrere Namen vorhanden sind sind in jeder Zelle vorhanden. Einfache LIKE-Suchen („WO Kinder ‚%Alex%‘ LIKE“) führen aufgrund teilweiser Übereinstimmungen (z. B. „Alexandre“ oder „Diana“) zu falsch positiven Ergebnissen.
Um dieser Herausforderung zu begegnen, wäre der optimale Ansatz B. darin bestehen, die Datenstruktur zu normalisieren, indem eine separate Tabelle zum Speichern der Kind-Eltern-Beziehungen eingeführt wird. Dies würde es uns ermöglichen, Verknüpfungen effizient durchzuführen und die gewünschten Informationen abzurufen.
Wenn eine Normalisierung dennoch nicht möglich ist, wird eine Lösung mit der Funktion FIND_IN_SET vorgestellt:
WHERE FIND_IN_SET('Alex', children) > 0
Diese Funktion sucht nach die angegebene Zeichenfolge innerhalb des Spaltenwerts und gibt eine positive Zahl zurück, wenn die Zeichenfolge vorhanden ist. Indem wir diese Bedingung in die WHERE-Klausel integrieren, können wir Zeilen identifizieren, in denen das „Alex“-Kind aufgeführt ist.
Das obige ist der detaillierte Inhalt vonWie kann ich eine Datenbankspalte mit durch Kommas getrennten Werten effizient abfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!