it-swarm.com.de

MySQL-Teilzeichenfolge zwischen zwei Zeichenfolgen

Ich brauche eine Hand, um ein Problem mit meinem Spaltenfeld zu lösen ... Ich muss die Zeichenfolge zwischen diesen beiden verschiedenen "Mustern" von Zeichenfolgen extrahieren, zum Beispiel:

[... string] contract = 1234567890123350566076070666 ausgestellt = [Zeichenfolge ...]

Ich möchte die Zeichenfolge zwischen 'contract =' und 'issue =' extrahieren.

Im Moment verwende ich 

SELECT substring(substring_index(licence_key,'contract=',-1),1,40) FROM table

Das Problem ist, dass diese Zeichenfolge nicht immer aus 40 Zeichen besteht, also nicht mit einer festen Länge und damit vor und nach den Daten. Es sind volatile Daten. 

Wissen Sie, wie ich damit umgehen kann?

15
Haohmaru

Verwenden Sie einfach substring_index() zweimal:

SELECT substring_index(substring_index(licence_key, 'contract=', -1),
                       'issued=', 1)
FROM table;
33
Gordon Linoff

Wenn diese Zeichenfolge nicht übereinstimmt, geben Sie das Gesamtergebnis an.

Wenn Sie ersetzen möchten, können Sie dies wie folgt verwenden.

UPDATE questions set question= REPLACE(question, '<xml></xml>', '') WHERE question like '%<xml>%';

UPDATE questions set question= REPLACE(question, substring_index(substring_index(question, '<xml>', -1), '</xml>', 1), '') WHERE question like '%<xml>%';
0
Gajanand Pandey