Hola jpogsistem:
Una manera que se me ocurre, pero que es terriblemente ineficiente sería hacer uso de la función SUBSTRING_INDEX, checa este ejemplo:
http://www.w3resource.com/mysql/stri...x-function.php
de tal suerte, que podrías hacer algo como esto:
Código MySQL:
Ver originalmysql
> SET @cadena
= 'hola---57---Andres---Rodriguez';Query OK, 0 rows affected (0.00 sec)
-> ;
+--------------------------------+--------+--------+--------+-----------+
| @cadena | campo1 | campo2 | campo3 | campo4 |
+--------------------------------+--------+--------+--------+-----------+
| hola---57---Andres---Rodriguez | hola | 57 | Andres | Rodriguez |
+--------------------------------+--------+--------+--------+-----------+
y así para los 20 campos. Coincido con gnzsoloyo en sus comentarios, esto parece ser un campo multivaluado, lo que implicaría un terrible diseño de tablas. Te conviene más crear un SP para limpiar tu información y pasarlo a una tabla que tenga los 20 campos separados.
Saludos
Leo.