Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/05/2010, 14:21
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Como splitar valor de columnas

Cita:
¿Existe alguna forma de hacerlo con mysql? o es más rápido dejárselo al lenguaje de programación de la página web (PHP)?
En esencia, una función como split, se usa para crear arrays de datos, y el problema es que no existen los array en los SP de MySQL, ni tampoco como función de ningún tipo, como es en el caso de Postgre que sí los tiene. Por ello es mejor dejárselo a la aplicación, sean el lo que sea que programes.
Por otro lado, si se necesita romper una cadena en varios valores individuales, es de suponer que en realidad estás hablando de un campo multivaluado, lo que significa que el modelo de datos ,tiene serios defectos, por cuanto los campos multivaluados no son admisibles en el modelo E-R.
Finalmente, si el problema es que deseas comparar un segmento de una cadena, existe una función que es SUBSTRING_INDEX(str,delim,count):
Cita:
SUBSTRING_INDEX(str,delim,count)
Retorna la subcadena de la cadena str antes de count ocurrencias del delimitador delim. Si count es positivo, todo a la izquierda del delimitador final (contando desde la izquierda) se retorna. Si count es negativo, todo a la derecha del delimitador final (contando desde la derecha) se retorna.

SELECT SUBSTRING_INDEX('www.mysql.com', '.', 1);
-> 'www'
SELECT SUBSTRING_INDEX('www.mysql.com', '.', -1);
-> 'com'

SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2);
-> 'www.mysql'
SELECT SUBSTRING_INDEX('www.mysql.com', '.', -2);
-> 'mysql.com'
Esta función trabaja con múltiples bytes.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)