He analizado datos con guiones en el mismo. El siguiente ejemplo utiliza una cadena de texto fijo para demostrar, simplemente cambie las referencias a los nombres de columna relevantes en la tabla. Jugué durante siglos con una forma de asegurarme de que funcionó en códigos con distintos números de componentes y al final decidí agregar la cláusula where. La mayoría de los datos que intenta analizar tienen una cantidad fija de columnas.
select
SUBSTRING_INDEX(TS,"-",1) as "1",
reverse(left(reverse(SUBSTRING_INDEX(TS,"-",2)),locate("-",reverse(SUBSTRING_INDEX(TS,"-",2)))-1)) as "2",
reverse(left(reverse(SUBSTRING_INDEX(TS,"-",3)),locate("-",reverse(SUBSTRING_INDEX(TS,"-",3)))-1)) as "3",
reverse(left(reverse(SUBSTRING_INDEX(TS,"-",4)),locate("-",reverse(SUBSTRING_INDEX(TS,"-",4)))-1)) as "4",
reverse(left(reverse(SUBSTRING_INDEX(TS,"-",5)),locate("-",reverse(SUBSTRING_INDEX(TS,"-",5)))-1)) as "5",
reverse(left(reverse(SUBSTRING_INDEX(TS,"-",6)),locate("-",reverse(SUBSTRING_INDEX(TS,"-",6)))-1)) as "6",reverse(left(reverse(SUBSTRING_INDEX(TS,"-",7)),locate("-",reverse(SUBSTRING_INDEX(TS,"-",7)))-1)) as "7",
reverse(left(reverse(SUBSTRING_INDEX(TS,"-",8)),locate("-",reverse(SUBSTRING_INDEX(TS,"-",8)))-1)) as "8",
reverse(left(reverse(SUBSTRING_INDEX(TS,"-",9)),locate("-",reverse(SUBSTRING_INDEX(TS,"-",9)))-1)) as "9",
reverse(left(reverse(SUBSTRING_INDEX(TS,"-",10)),locate("-",reverse(SUBSTRING_INDEX(TS,"-",10)))-1)) as "10"
from (select "aaa-bbb-ccc-ddd-eee-fff-ggg-hhh-iii-jjj" as TS) as S
where (LENGTH(TS)-LENGTH(REPLACE(TS,'-',''))) =9
Ok, ¿puede ser más específico? –
Pero la idea con Regex es genial –
Según el enlace, las respuestas únicas no son buenas prácticas. Sé que esto es antiguo, pero quería dejar este comentario de todos modos con la esperanza de que regreses y mejoras esta respuesta. Particularmente dado que seguir esos dos enlaces no dice inmediatamente cómo aplicar esto al problema, por lo que ni siquiera son realmente grandes enlaces para responder la pregunta por sí mismos. (para la discusión de las respuestas de solo enlace ver http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers) – Chris