Foros del Web » Programando para Internet » PHP »

Localizar registro - Php - Sql

Estas en el tema de Localizar registro - Php - Sql en el foro de PHP en Foros del Web. Hola Tengo una duda un tanto sencilla, pero rara porque no encuentro la solución por más que busco: Yo tengo un campo en la BBDD ...
  #1 (permalink)  
Antiguo 21/10/2003, 09:21
Avatar de Antonito  
Fecha de Ingreso: noviembre-2001
Ubicación: en la red
Mensajes: 446
Antigüedad: 16 años
Puntos: 3
Localizar registro - Php - Sql

Hola

Tengo una duda un tanto sencilla, pero rara porque no encuentro la solución por más que busco:

Yo tengo un campo en la BBDD que tiene unos datos de la siguiente manera :

Valor : valor_EXX

(donde XX es un número)

El problema es que necesito encontrar el registro que tenga el último "valor_E", osea que si tengo :

valor_E1
valor_E2
valor_E3
valor_E4

Quiero capturar el : "valor_E4".

Yo he pensado en ordenarlos por el campo y cojer el último registro, lo que pasa es que tengo casos como :

valor_Z01

Y este me saldría el último, y no vale porque necesito el que tenga la "E".

Se entiende? Como lo hago?

Muchas gracias a [email protected]!
__________________
Pancho - Consultor de usabilidad

Última edición por Antonito; 21/10/2003 a las 09:33
  #2 (permalink)  
Antiguo 21/10/2003, 09:36
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Hola,

Si quieres solo los que empiezan por valor_E, añade en el WHERE:

WHERE Valor like 'valor_E%'

suponiendo que el campo se llama Valor.

Per recuerda que ordenando alfabeticamente, valor_E2 va detras de valor_E1234. Si usas valores con relleno de 0, no hay ese problema. El relleno de 0 es si sabes que la parte numerica va a tener como mucho 4 digitos, rellenar con 0 a la izquierda los numeros con menos digitos. Asi el valor_E2 pasaria a valor_E0002, que va antes que valor_E1234.

Si no usas el relleno de 0, quizas podrias hacer uso de la funcion SUBSTR de MySQL (http://www.mysql.com/doc/en/String_functions.html) y hacer algo asi:

SELECT SUBSTR(Valor,7)+0 as numero WHERE Valor like 'valor_E%' ORDER BY numero DESC LIMIT 1

si lo que quieres es sacar el mas alto. El '+0' es para convertir el string a numero. OJO: no lo he probado, asi que no te aseguro que funcione. Pero en teoria deberia funcionar.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 10:47.