Heim >Datenbank >MySQL-Tutorial >Wie extrahiere ich den n-ten Wert aus einer durch Kommas getrennten Zeichenfolge und verarbeite Nullen?
Extrahieren des n-ten Werts aus einer durch Kommas getrennten Liste mit Nullbehandlung
Bei Verwendung von REGEXP_SUBSTR() zum Extrahieren des n-ten Werts aus einer durch Kommas getrennten Liste Bei getrennten Listen kann der Umgang mit Nullwerten eine Herausforderung darstellen. Um dies zu erreichen, ist eine Änderung des regulären Ausdrucks erforderlich.
Der ursprüngliche Ausdruck, REGEXP_SUBSTR('1,,3,4,5', '[^,] ', 1, 2), gibt den zurück zweites Vorkommen eines oder mehrerer Zeichen, die kein Komma sind. Wenn jedoch eine Null auftritt, interpretiert es diese als Beginn eines neuen, nicht leeren Werts und gibt das dritte Element anstelle der erwarteten Null zurück.
Um dies zu beheben, wird der Ausdruck geändert, um Null oder zuzulassen weitere Nicht-Komma-Zeichen: REGEXP_SUBSTR('1,,3,4,5', '(.*?)(,|$)', 1, 2, NULL, 1). Er identifiziert den gewünschten Wert, indem er entweder nach null oder mehr Zeichen sucht, gefolgt von einem Komma oder dem Ende der Zeile, und gibt nur die erste Untergruppe (die gewünschten Daten) zurück.
Dieser erweiterte Ausdruck verarbeitet Nullen korrekt und gibt zurück null, wenn das zweite Element leer ist. Die Funktion GET_LIST_ELEMENT() kapselt diese Logik zur einfacheren Wiederverwendung:
FUNCTION GET_LIST_ELEMENT(string_in VARCHAR2, element_in NUMBER, delimiter_in VARCHAR2 DEFAULT ',') RETURN VARCHAR2 IS BEGIN RETURN REGEXP_SUBSTR(string_in, '(.*?)(\'||delimiter_in||'|$)', 1, element_in, NULL, 1); END GET_LIST_ELEMENT;
Dieser Ansatz berücksichtigt Nullen und ermöglicht die Auswahl eines beliebigen Werts aus der Liste.
Das obige ist der detaillierte Inhalt vonWie extrahiere ich den n-ten Wert aus einer durch Kommas getrennten Zeichenfolge und verarbeite Nullen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!