Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/12/2014, 17:10
Avatar de gnzsoloyo
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
Respuesta: Asignar resultado consulta a variable y usar

Cita:
Estoy tratando de conseguir lo siguiente. Tengo una tabla llamada cargos_cargos con dos campos, Id_CIF e Id_Web.
Quiero ejecutar una consulta que me devuelva todos los registros cuando Id_CIF sea = 1 y el resultado guardarlos para seguidamente, ejecutar otra consulta sobre esto que ha devuelto y que me de los resultados cuando Id_Web = 1. Todo programando con Mysql.
En MySQL no puedes hacer eso porque no existen ni los array, ni las collections, ni tampoco los tipos de dato COLUMN, RECORD o TABLE.
Esos tipos de objetos existen en otros DBMS, pero no es el caso de MySQL.
Cita:
Ya se que se podria hacer todo a la vez en una sola consulta, pero estoy tratando de aprender a programar con mysql.
MySQL no es un lenguaje de programación, por lo que no puedes "programar" en un sentido estricto. Lo que sí existe es un lenguaje procedural como en otros DBMS (p.e. T-SQL en SQL Server y PL/SQL en Oracle), que se usa para crear stored procedures, stored funcions, triggers y events. Pero funciona algo distinto.
Lo que quieres hacer es perfectamente posible dentro de un SP, usando tablas de tipo TEMPORARY, así como haciendo lo mismo en secuencias de sentencias ejecutadas sobre la misma conexión, en forma secuencial.
Usar variables para almacenar una cadena de valores obtenidos en una consulta con uso de funciones es posible, pero luego tendrías que crear una sentencia preparada (algo especial), que es un tipo de objeto de BBDD algo peligroso para manipular con liviandad.

Lo que quieres hacer es perfectamente posible así:
Código SQL:
Ver original
  1. CREATE TEMPORARY TABLE tablatemp
  2. AS SELECT Id_CIF, Id_Web
  3. FROM cargos_cargos c
  4. WHERE c.Id_CIF = 1;
  5.  
  6. SELECT COUNT(*) TOTALVARI
  7. FROM tablatem
  8. WHERE Id_Web = 1;

Nota: Deben ejecutarse en forma seguida y sin cerrar la conexión usada en la primera porque al cerrarse esta la tabla creada desaparecerá.
Nota 2: Esa tabla sólo es visible en esa conexión. Si abres una conexión paralela, aunque sea con el mismo usuario no la verás.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)