Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

coger el ultimo elemento insertado

Estas en el tema de coger el ultimo elemento insertado en el foro de Mysql en Foros del Web. Estoy en mysql 5.0 y queria ver si hay alguna funcion que me devuelva el ultimo elemento insertado. Mi problema viene de que tengo una ...
  #1 (permalink)  
Antiguo 06/03/2008, 05:24
Avatar de cris_maco  
Fecha de Ingreso: abril-2007
Ubicación: Salamanca
Mensajes: 254
Antigüedad: 17 años
Puntos: 0
coger el ultimo elemento insertado

Estoy en mysql 5.0 y queria ver si hay alguna funcion que me devuelva el ultimo elemento insertado. Mi problema viene de que tengo una tabla cuya clave es un string formado por numeros y claro no puedo utilizar el select max porque la ordenacion viene por los años. Me explico mejor:
Estos son algunos de los datos introducidos:
012007 022007 032007 ... 01252007 012008
y claro para mi el ultimo elemento insertado es 012008, pero no es el mayor de todos los de la tabla.
alguna idea?
  #2 (permalink)  
Antiguo 06/03/2008, 05:59
Avatar de 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
Re: coger el ultimo elemento insertado

Por esa razón es habitual conservar el formato yyyy-mm-dd-hh-mm-ss, de todos modos, reconstruir una fecha desde allí es muy fácil, y además simplemente lo puedes obtener usando FORMAT().
Respecto a lo que preguntas, si no has establecido algún tipo de campo que te permita seguir el rastro histórico de las entradas, entonces no tienes solución.
La mejor solución hubiera sido que conservaras un campo ID autonumérico y un indice UNIQUE por el otro campo (que tampoco es muy razonable, porque si tuvieses dos orígenes de entradas de datos, como podrían ser dos sucursales, podría existir solapamiento de información).
  #3 (permalink)  
Antiguo 06/03/2008, 11:10
 
Fecha de Ingreso: marzo-2008
Ubicación: Buenos Aires
Mensajes: 86
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: coger el ultimo elemento insertado

Quizas esta consulta te sirva, si es que TODOS los valores de la clave los tienes en formato mmaaaa (ahi veo uno distinto pero espero que solo sea error de tipeo 01252007)

SELECT max( concat( substr( clave, 3, 4 ) , substr( clave, 1, 2 ) ) ) AS maximo, clave
FROM prueba
  #4 (permalink)  
Antiguo 06/03/2008, 16:25
Avatar de cris_maco  
Fecha de Ingreso: abril-2007
Ubicación: Salamanca
Mensajes: 254
Antigüedad: 17 años
Puntos: 0
Re: coger el ultimo elemento insertado

ahi esta el problema que los numeros son numeros consecutivos seguidos del año, perdon que aunque se cambie de año se sigue con la secuencia y lo puse mal:
012007,022007, ...01252007, 01262008, ...
  #5 (permalink)  
Antiguo 07/03/2008, 05:18
 
Fecha de Ingreso: marzo-2008
Ubicación: Buenos Aires
Mensajes: 86
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: coger el ultimo elemento insertado

Prueba esto:

Código:
SELECT concat( right( clave, 4 ) , lpad( substring( clave, 1, length( clave ) -4 ) , 10, '0' ) ) AS claveorden, clave FROM pruebaclave ORDER BY claveorden DESC limit 1
la consulta te devuelve claveorden que es un valor auxiliar para el ordenamiento, y clave que es tu clave original grabada.

lo que hace esta consulta es esto:

toma los ultimos cuatro caracteres de tu clave (el año)
les concatena la subcadena de tu clave, empezando desde el primer caracter y tomando la longitud total menos cuatro (sin el año). A esto antes de concatenarlo lo justifica a 10 caracteres insertando ceros a la izquierda, para regularizar que todos los numeros ocupen igual numero de caracteres y resulten bien ordenados.

Espero que te sirva.

-ronnieb
  #6 (permalink)  
Antiguo 10/03/2008, 06:19
Avatar de cris_maco  
Fecha de Ingreso: abril-2007
Ubicación: Salamanca
Mensajes: 254
Antigüedad: 17 años
Puntos: 0
Re: coger el ultimo elemento insertado

muchisimas gracias, me has sacado de un apuro bien grande. La consulta funciona muy bien.

gracias, gracias, gracias....
  #7 (permalink)  
Antiguo 11/03/2008, 06:18
 
Fecha de Ingreso: marzo-2008
Ubicación: Buenos Aires
Mensajes: 86
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: coger el ultimo elemento insertado

por nada me alegro de haber sido de ayuda :)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:44.