Quel serait le moyen le plus simple de localiser l'index du troisième espace dans une chaîne.
Mon objectif est de sortir CCC
de cette liste: AAAA BBBB CCCC DDDD EEE
. où A et B et D sont de longueur fixe et C est de longueur variable, E F G est facultatif.
En Java, j'utiliserais indexof, avec un point de départ égal à 10, ce qui me donnerait le troisième espace, mais il semble que je ne peux pas le faire avec MySQL. J'ai donc pensé que je pourrais peut-être trouver un "troisième index de" fonction?
Vous voudriez utiliser la fonction SUBSTRING_INDEX
comme ceci
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(field, ' ', 3), ' ', -1)
FROM table
L'appel de fonction interne vous amènerait à AAAA BBBB CCCC
tandis que l'appel de fonction externe réduirait cela à juste CCCC
.
Vous pouvez utiliser SUBSTRING_INDEX
.
Généralement, vous pouvez sélectionner le mot nth
dans une chaîne en utilisant:
SET @N = 3; -- 3rd Word
SET @delimiter = ' ';
SELECT
SUBSTRING_INDEX(SUBSTRING_INDEX(words, @delimiter, @N), @delimiter, -1)
FROM
my_table