Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich eine Datenbankspalte mit durch Kommas getrennten Werten effizient abfragen?

Wie kann ich eine Datenbankspalte mit durch Kommas getrennten Werten effizient abfragen?

Barbara Streisand
Freigeben: 2024-12-30 21:44:10
Original
808 Leute haben es durchsucht

How Can I Efficiently Query a Database Column Containing Comma-Separated Values?

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
Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage