¿Consulta en MySql como tomar los últimos caracteres de un campo?

En mi base de datos tengo un campo expe que en algunos casos se compone de números y signos, que se pueden dar 2 casos

11/2005

12/2012-13

Lo que necesito es que de esa cadena tomar los últimos 3 caracteres y verificar si existe el carácter '-' según en unas páginas podría usar la función LOCALE o POSITION pero no se si la función es incorrecta o de que otra manera puedo verificar la cadena de caracteres y ver si hay un '-' en ella

Respuesta
2

Algo sencillo:

Select * from tabla where LEFT(RIGHT(EXPE,3),1) = '-';

Obviamente siempre y cuando el '-' este en la tercera intentar comenzando de la derecha.

4 respuestas más de otros expertos

Respuesta
2

La primera opción no la quería utilizar era necesariamente con un query, pero quería encontrar algo parecido en mysql y de hecho si era parecido a la sentencia locale que había encontrado, en la segunda opción la mayoría de esas páginas ya había revisado y mejor oprte por buscar la función LOCALE pero me mando otra que es la función LOCATE la cual la utilice así

SELECT *
FROM `tabla`
WHERE(

SELECT LOCATE( '-', EXPE )

) = '0'

Si es que devuelve '0' es que no encontró ese carácter o si es que se escribe una cadena, dentro del campo EXPE, así ya me trae todos los expedientes que no contienen ese guion.

Respuesta
2

$p1 = strpos($variable,"-");

Si $p1 es mayor que cero entonces existe "-" en la posición $p1

Entonces sustraes desde &p1 hasta el final así:

$resultado = substr($variable,$p1);

Estero te sirva.

SiREZ

Respuesta
1
Respuesta
1

Claro que si

Utiliza strpos, substr strlen, con esto puedes ver si l longitud del cmpo es mayor a cero,

Con strlen obtienes la longitud total, de allí sacas las 3 ultimas

Con strpos sabes si existe el - y en que intentar esta... etc

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas