Heim >Datenbank >MySQL-Tutorial >Wie extrahiere ich aufeinanderfolgende Ziffern aus einem MySQL-Textfeld und wende zusätzliche Kriterien an?

Wie extrahiere ich aufeinanderfolgende Ziffern aus einem MySQL-Textfeld und wende zusätzliche Kriterien an?

Barbara Streisand
Barbara StreisandOriginal
2024-12-18 13:15:19623Durchsuche

How to Extract Consecutive Digits from a MySQL Text Field and Apply Additional Criteria?

Aufeinanderfolgende Ziffern aus einem MySQL-Textfeld extrahieren

In MySQL kann die folgende Abfrage Textfelder erkennen, die zweistellige Zahlen enthalten:

SELECT `id`, `originaltext` FROM `source` WHERE `originaltext` regexp '[0-9][0-9]'

Um diese Zahlen jedoch als separates Feld zu bearbeiten, ist eine weitere Verarbeitung erforderlich. Hier sind zwei mögliche Lösungen:

Verwendung von LIB_MYSQLUDF_PREG

LIB_MYSQLUDF_PREG ist eine MySQL-Bibliothek, die die Funktionalität regulärer Ausdrücke erweitert. Es führt Funktionen wie PREG_CAPTURE ein, mit denen Übereinstimmungen aus einer Zeichenfolge extrahiert werden können.

Um diese Bibliothek verwenden zu können, müssen Sie sie auf Ihrem MySQL-Server installieren. Nach der Installation können Sie die folgende Abfrage verwenden, um aufeinanderfolgende Ziffern zu extrahieren:

SELECT `id`, PREG_CAPTURE('[0-9][0-9]', `originaltext`) AS `digits` FROM `source`

Verwenden einer benutzerdefinierten MySQL-Funktion

Alternativ können Sie eine benutzerdefinierte MySQL-Funktion definieren führt die Extraktion durch. Die folgende Funktion extrahiert beispielsweise die erste längste übereinstimmende Ziffernfolge:

CREATE FUNCTION REGEXP_EXTRACT(string TEXT, exp TEXT)
RETURNS TEXT
DETERMINISTIC
BEGIN
  DECLARE s INT DEFAULT 1;
  ...
  -- Implementation to extract the matching digits
  ...
END

Um diese Funktion zu verwenden, rufen Sie sie wie folgt auf:

SELECT `id`, REGEXP_EXTRACT(`originaltext`, '[0-9][0-9]') AS `digits` FROM `source`

Zusätzliche Kriterien ( Zahlen > 20)

Um das Kriterium hinzuzufügen, dass die Zahlen größer als 20 sein sollten, fügen Sie einfach diese Bedingung hinzu die WHERE-Klausel einer der beiden Abfragen:

WHERE `digits` > 20

Das obige ist der detaillierte Inhalt vonWie extrahiere ich aufeinanderfolgende Ziffern aus einem MySQL-Textfeld und wende zusätzliche Kriterien an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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