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

conocer llave ´mayor de la tabla

Estas en el tema de conocer llave ´mayor de la tabla en el foro de Mysql en Foros del Web. Tengo una tabla mySQL, y la llave es VARCHAR. ¿Como puedo obtener el registro más grande almacenado según esta llave? No necesariamente será el último ...
  #1 (permalink)  
Antiguo 06/02/2010, 23:24
 
Fecha de Ingreso: enero-2002
Mensajes: 1.174
Antigüedad: 22 años, 9 meses
Puntos: 21
conocer llave ´mayor de la tabla

Tengo una tabla mySQL, y la llave es VARCHAR.
¿Como puedo obtener el registro más grande almacenado según esta llave?

No necesariamente será el último registro insertado, ya que pude dar de alta la siguiente secuencia:

1
2
7
3

Donde la llave más grande es 7.

Gracias anticipadas
  #2 (permalink)  
Antiguo 07/02/2010, 00:41
Avatar de blesther  
Fecha de Ingreso: abril-2008
Mensajes: 141
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: conocer llave ´mayor de la tabla

Puede realizarse por 2 vías, la primera es realizando una consulta en donde obtienes el valor máximo de la tabla y

SELECT max(id) FROM table WHERE condition LIMIT 1;

otra via

SELECT * FROM table WHERE condition ORDER BY desc LIMIT 1;

Suerte!
  #3 (permalink)  
Antiguo 07/02/2010, 01:19
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 21 años, 1 mes
Puntos: 41
Respuesta: conocer llave ´mayor de la tabla

Tema movido desde PHP a MySQL
  #4 (permalink)  
Antiguo 07/02/2010, 01:49
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: conocer llave ´mayor de la tabla

Prueba ordenando el valor pero con un casting a numérico sin signo:
Código SQL:
Ver original
  1. SELECT id FROM tutabla ORDER BY CAST(id AS UNSIGNED) LIMIT 1

Seguro que tienes tus razones, pero tengo que preguntarte qué te lleva a usar una clave numérica en un campo VARCHAR, y además no servirte del autonumérico; ¿como evitas no repetir números?

Última edición por jurena; 08/02/2010 a las 10:55
  #5 (permalink)  
Antiguo 07/02/2010, 08:11
 
Fecha de Ingreso: enero-2002
Mensajes: 1.174
Antigüedad: 22 años, 9 meses
Puntos: 21
Respuesta: conocer llave ´mayor de la tabla

Cita:
Iniciado por jurena Ver Mensaje
Prueba ordenando el valor pero con un casting a numérico sin signo:
Código SQL:
Ver original
  1. SELECT id FROM tutabla ORDER BY CAST(id AS UNSIGNED)

Seguro que tienes tus razones, pero tengo que preguntarte qué te lleva a usar una clave numérica en un campo VARCHAR, y además no servirte del autonumérico; ¿como evitas no repetir números?
Gracias a todos, probaré cada sugerencia a detalle.

En mi ejemplo utilicé solo números a fin de ser más rápidamente explicito.
Gracias y consideraré tu comentario.

Saludos
  #6 (permalink)  
Antiguo 07/02/2010, 22:31
 
Fecha de Ingreso: marzo-2009
Ubicación: Mi casa que no?
Mensajes: 17
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: conocer llave ´mayor de la tabla

SI EL CAMPO ES VARCHAR LA MEJOR OPCION ES ESTA QUE DIJO "blesther"

SELECT * FROM table WHERE condition ORDER BY desc LIMIT 1;

ES LA OPCION MAS RAPIDA AUNQUE TODAS LAS COMENTADAS SON CORRECTAS(HACEN LO MISMO), pero esta es mas rapido por que no usa funciones internas del mysql, imagina que tubieras miles de miles de registros esta seria la mas rapida
  #7 (permalink)  
Antiguo 08/02/2010, 02:07
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: conocer llave ´mayor de la tabla

eidavid,
eso que dices es cierto en lo que se refiere a la velocidad, pero produciría resultados erróneos. Me explicaré:
eso ordena 195 antes que 2.
De ahí la necesidad de hacer el casting a numérico.

saludos.
  #8 (permalink)  
Antiguo 08/02/2010, 10:49
Avatar de blesther  
Fecha de Ingreso: abril-2008
Mensajes: 141
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: conocer llave ´mayor de la tabla

Estás seguro? Yo he probado este método y me funciona.
  #9 (permalink)  
Antiguo 08/02/2010, 10:53
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: conocer llave ´mayor de la tabla

cito a Bier
Cita:
Tengo una tabla mySQL, y la llave es VARCHAR.
¿Como puedo obtener el registro más grande almacenado según esta llave?
¿Te funciona con los datos guardados en un campo VARCHAR()?

saludos
  #10 (permalink)  
Antiguo 08/02/2010, 10:56
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: conocer llave ´mayor de la tabla

Cita:
Iniciado por blesther Ver Mensaje
Estás seguro? Yo he probado este método y me funciona.
Para que funcione entre '195' y '2', blesther, debes convertirlo a números, si no los ordena como caracteres y en ese caso el '195' va primero...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #11 (permalink)  
Antiguo 08/02/2010, 11:01
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: conocer llave ´mayor de la tabla

No sé cuál es mejor, pero yo probaría estas dos:

Código SQL:
Ver original
  1. SELECT id FROM tutabla ORDER BY CAST(id AS UNSIGNED) LIMIT 1
Código SQL:
Ver original
  1. SELECT MAX(CAST(id AS UNSIGNED)) FROM tutabla

Etiquetas: conocer, llave, mayor, tablas
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 12:47.