Heim >Datenbank >MySQL-Tutorial >Wie kann ich durch Kommas getrennte Spaltenwerte effizient nach bestimmten Werten in Oracle 10g abfragen?
Abfragen nach durch Kommas getrennten Spaltenwerten mit einem bestimmten Wert
In einer Tabelle, in der eine Spalte durch Kommas getrennte Werte enthält, die Kategorien darstellen, dort besteht darin, Zeilen basierend auf dem Vorhandensein einer bestimmten Kategorie abzurufen. Obwohl die Verwendung von LIKE-Anweisungen ausreichen kann, bestehen Bedenken hinsichtlich der Effizienz und Genauigkeit.
Die Funktion FIND_IN_SET() wird in der 10g-Version nicht unterstützt, obwohl sie in der Oracle-Dokumentation dokumentiert ist. Folglich ist ein alternativer Ansatz erforderlich, um die durch Kommas getrennten Spaltenwerte effektiv abzufragen.
Eine Lösung, die LIKE mit Modifikationen verwendet, um Teilübereinstimmungen und Kommas zu berücksichtigen, ist wie folgt:
select * from YourTable where ',' || CommaSeparatedValueColumn || ',' LIKE '%,SearchValue,%'
Allerdings , ist diese Abfrage aufgrund der Verwendung von LIKE anfällig für Leistungsprobleme. Darüber hinaus wird davon ausgegangen, dass Werte keine Leerzeichen oder Kommas enthalten, was möglicherweise nicht immer der Fall ist.
Um diese Einschränkungen zu mildern, besteht eine effizientere und zuverlässigere Lösung darin, die Tabelle durch die Einführung einer untergeordneten Tabelle für Kategorien neu zu strukturieren und eine Vernetzungstabelle zum Herstellen von Beziehungen zur Haupttabelle. Dieser Ansatz bietet eine bessere Leistung und Genauigkeit beim Abfragen von durch Kommas getrennten Spaltenwerten mit bestimmten Werten.
Das obige ist der detaillierte Inhalt vonWie kann ich durch Kommas getrennte Spaltenwerte effizient nach bestimmten Werten in Oracle 10g abfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!