por - MySQL segundo(o tercero) índice de en cadena
optimizar consultas lentas mysql (3)
En general, puede seleccionar la palabra nth
en una cadena usando:
SET @N = 3; -- 3rd word
SET @delimiter = '' '';
SELECT
SUBSTRING_INDEX(SUBSTRING_INDEX(words, @delimiter, @N), @delimiter, -1)
FROM
my_table
Cuál sería la forma más sencilla de ubicar el índice del tercer espacio en una cadena.
Mi objetivo es sacar a CCC
de esta lista separada por espacios: AAAA BBBB CCCC DDDD EEE
. donde A y B y D son de longitud fija, y C es de longitud variable, EFG es opcional.
En Java usaría indexof, con un punto de inicio de 10 y eso me daría el tercer espacio, pero parece que no puedo hacer eso en MySQL, así que pensé que tal vez podría encontrar una función de ''tercer índice de''.
Podrías usar SUBSTRING_INDEX
.
Usted querría usar la función SUBSTRING_INDEX
como esta
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(field, '' '', 3), '' '', -1)
FROM table
La llamada a la función interna lo llevaría a AAAA BBBB CCCC
mientras que la llamada a la función externa lo reduciría solo a CCCC
.