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

Consulta con 1 campo extremadamente extenso

Estas en el tema de Consulta con 1 campo extremadamente extenso en el foro de Mysql en Foros del Web. Hola que tal maestros. Bueno como el tema lo indica, la temática es la siguiente: Estoy haciendo una especie de sistema de reporteo, dependiendo del ...
  #1 (permalink)  
Antiguo 23/01/2013, 14:35
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Pregunta Consulta con 1 campo extremadamente extenso

Hola que tal maestros.

Bueno como el tema lo indica, la temática es la siguiente:

Estoy haciendo una especie de sistema de reporteo, dependiendo del usuario, puede ver un número determinado de vehículos.

El problema surge cuando por ejemplo un administrador o usuarios especiales pueden ver más de 50 vehículos, ya que para poder obtener información de 1 solo vehículo es necesario una cadena de 10 caracteres ejemplo AAA0000001.

Actualmente tengo las siguiente consulta, el problema es que que no me genera el resultado que deseo.

Código MySQL:
Ver original
  1. SELECT CAST(REPLACE(GROUP_CONCAT(concat("'",Gps,"'")),',', ',') AS CHAR(1000000) CHARACTER SET utf8) AS gps FROM ligaUnidad WHERE idVehiculo in(@)
  2.  
  3. // el @ lo podemos sustituir por 1,2,3,4,5,6,53,56,334,673, ...... etc

Por ejemplo no se si sea posible obtener en una sola consulta concatenar la cadena que necesito de la siguiente manera 'AAA0000001','AAA0000002','AAA0000003', .... etc para un promedio de 1500 vehículos que es como el tope máximo en el sistema, en este caso serian un maximo de 20000 caracteres en una sola columna

La opción de otros compañeros que para mi no es lo mas optimo es crear un select normal de la tabla con el campo Gps y crear una cadena al momento de recorrer el resultado
ya que el proceso es interno.

Espero puedan ayudarme a resolver este problema.

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #2 (permalink)  
Antiguo 25/01/2013, 03:38
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Consulta con 1 campo extremadamente extenso

No explicas, o no entiendo, para que quieres esa cadena

si es para consultar la tabla vehiculos o la tabla que sea usandola en "IN (...)" no la necesitas....

Código MySQL:
Ver original
  1. SELECT ...lo que sea...
  2.    FROM vehiculos
  3.    WHERE gps IN (SELECT gps
  4.             FROM ligaUnidad
  5.             WHERE idVehiculo IN(1,2,3,4,5,6,53,56,334,673, ......));

esto haria la consulta usando la cadena que quieres construir....sin construirla. no?

Y si hay una relacion entre usuario y vehiculo tambien podriamos suprimir la lista de idVehiculo... pero habria que ver el diseño de tu bbdd.

Código MySQL:
Ver original
  1. SELECT ...lo que sea...
  2.    FROM ...la tabla que sea ...
  3.    WHERE gps IN (SELECT gps
  4.             FROM ligaUnidad
  5.             WHERE idVehiculo IN(SELECT idVehiculo
  6.                      FROM ...tabla...
  7.                      WHERE idUsuario=X));

(eso consulta todos los vehiculos relacionados con el usuario X, nadie entra a manita 1500 ids... mas de una vez)



Si no te he entendido.... yo haria lo de tus compañeros....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 25/01/2013 a las 03:56

Etiquetas: select, tabla
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 09:05.