J'ai besoin d'un coup de main pour résoudre un problème avec mon champ de colonne . J'ai besoin d'extraire la chaîne entre ces deux "motifs" de chaînes différents, par exemple:
[... chaîne] contrat = 1234567890123350566076070666 publié = [chaîne ...]
Je veux extraire la chaîne entre 'contrat =' et 'publié ='
En ce moment j'utilise
SELECT substring(substring_index(licence_key,'contract=',-1),1,40) FROM table
Le problème est que cette chaîne entre les deux n'a pas toujours 40 caractères, elle n'est donc pas de longueur fixe et donc les données qui précèdent et qui suivent. C'est une donnée volatile.
Savez-vous comment je peux gérer ça?
Il suffit d'utiliser substring_index()
deux fois:
SELECT substring_index(substring_index(licence_key, 'contract=', -1),
'issued=', 1)
FROM table;
Si cette chaîne ne correspond pas, donnez le résultat total.
Si vous souhaitez remplacer, vous pouvez utiliser comme ceci.
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>%';