La mejor opción es, creo, esta, si siempre aparece el guión y sólo hay uno:
Código sql:
Ver originalSELECT SUBSTRING_INDEX(campo,'-',-1) trasguion FROM tabla
Si usas 1, en lugar de -1 te sacará la primera parte, la anterior al guión.
Esto, algo más elaborado, hace lo mismo. Y así lo hacíamos antes de contar con substring_index()
Código sql:
Ver originalSELECT SUBSTRING( campo, POSITION( '-' IN campo ) +1 ) trasguion FROM tabla
Presenta la ventaja de que en caso de haber más de un guión, sigue haciendo bien su trabajo y no hace falta retocarla, algo que sí tendrías que hacer con la anterior de haber más de un guión.
con POSITION (...IN) ubicas la posición donde está el guión; luego haces un SUBSTRING para traerte desde esa posicion más uno, para no traerte también el guión, y lo llamas como quieras (yo lo he llamado trasguion). Si quieres evitar también los espacios en blanco le haces un trim.
Código sql:
Ver originalSELECT TRIM(SUBSTRING( campo, POSITION( '-' IN campo ) +1 )) trasguion FROM tabla
también podrías usar LOCATE en lugar de POSITION, pero es lo mismo, aunque con una sintaxis algo distinta.