MySQL - Extraer letras de una cadena de letras y numeros

 
Vista:

Extraer letras de una cadena de letras y numeros

Publicado por Ronald Ruiz (1 intervención) el 02/10/2017 20:48:07
Buenas tardes,

Alguien que me pueda ayudar con este caso:

Tengo un resultado de una consulta mysql ejemplo:

SELECT datos as RESULTADO from tabla

RESULTADO
BA481
BC491
B51
B51.6

Quiero en esa consulta solo extraer la parte alfabética:

RESULTADO
BA
BC
B
B

Muchas gracias,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 953
Oro
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Extraer letras de una cadena de letras y numeros

Publicado por leonardo_josue (414 intervenciones) el 03/10/2017 18:42:28
Hola Ronald:

¿qué haz intentado hacer para obtener la consulta que necesitas? porque creo que al menos intentaste algo cierto ¿cierto?

Hay muchas formas de obtener lo que quieres, unas más complejas que otras, pero todas están relacionadas con el uso de FUNCIONES DE CADENA:

https://dev.mysql.com/doc/refman/5.7/en/string-functions.html

Postea cualquier intento que hayas hecho, dinos qué está mal y con gusto te ayudamos a resolver lo que falte.

Hay muchas formas de resolver lo que quieres, pero debes de tener en cuenta las siguientes consideraciones, ¿al inicio del la cadena siempre van a venir 1 o 2 caracteres? o ¿puede ser variable la longitud de esta cadena?

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Extraer letras de una cadena de letras y numeros

Publicado por Ronald Ruiz (1 intervención) el 03/10/2017 18:57:52
Gracias Leo,

Si he intentado muchas formas, pero el problema radica es que la longitud es variable, puede ser que al inicio haya 1 letras o 2, es para extraer la parte alfabética de la clasificación LC y puede ser como en el ejemplo que coloco.

He usado substring, string, pero llego hasta donde me extrae el primer valor o del segundo hasta el primero, pero cuando el segundo valor es un numero ahí es el problema.

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 953
Oro
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Extraer letras de una cadena de letras y numeros

Publicado por leonardo_josue (414 intervenciones) el 03/10/2017 22:46:14
Hola de nuevo Ronald:

Insisto, no nos pones ningún ejemplo de lo que intentaste hacer como para poder decirte qué está mal ¬¬. Y tienes muchas formas de hacerlo!!! sólo es cuestión de tener un poco de imaginación e iniciativa:

De acuerdo a lo que nos dices si la longitud de tu cadena inicial sólo puede ser de 1 caracter o de 2 caracteres... si esto es correcto entonces tú problema se resume en determinar cuál de los dos casos es... una idea sería extraer el SEGUNDO caracter de tu cadena, si es un NÚMERO, entonces YA LLEGASTE AL LÍMITE, por lo tanto extraes sólo 1 caracter... si por el contrario, el segundo caracter es una LETRA, entonces NO HAS LLEGADO AL LIMITE, por lo tanto debes extraer 2 caracteres. esto lo haces con condiciones IF o CASE-WHEN...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
mysql> SELECT
    ->   resultado,
    ->   SUBSTRING(resultado, 2, 1) segundo,
    ->   IF( SUBSTRING(resultado, 2, 1) IN ('1', '2', '3', '4', '5', '6', '7', '8', '9'),
    ->       'extraes un caracter',
    ->       'extraes dos caracteres'
    ->       ) cadena
    -> FROM tabla;
+-----------+---------+------------------------+
| resultado | segundo | cadena                 |
+-----------+---------+------------------------+
| BA481     | A       | extraes dos caracteres |
| BC491     | C       | extraes dos caracteres |
| B51       | 5       | extraes un caracter    |
| B51.6     | 5       | extraes un caracter    |
+-----------+---------+------------------------+
4 rows in set (0.00 sec)

en lugar de las cadenas que pongo de ejemplo pon la lógica para hacer un SUBSTRING según sea el caso.

OJO, esta consulta serviría SÓLO PARA LONGITUDES DE 1 Y 2 CARACTERES, qué pasaría si tuvieras una cadena así: ABC12. o qué pasaría si tuviera N caracteres al inicio? o qué pasaría en lugar de número tienes un caracter especial, como AB.1 o AB$? todas estas consideraciones las tienes que tomar en cuenta para hacer tu consulta.

Haz la prueba y nos comentas.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar