è possibile?
Un esempio per favore?
è possibile?
Un esempio per favore?
zacca, il regolamento ce lo siamo dimenticati?indica di quale db stiamo parlando. e poi, cosa intendi per "loop all'interno di una select"?
Sorry, mysql.
intendo questo:
SELECT * FROM famigliai WHERE parente IN ( /* definizione array con valori, e loop dei valori */ )
è alquanto astratto ma mi interessa più per scopo didattico che altro..
vedo che hai usato "IN", quindi sai già come funziona: ma continuo a non capire cosa intendi con "loop dei valori" (una SELECT è una SELECT, non fa loop...)
fa' un esempio pratico per piacere
qualcosa di simile, dove var contiene gli id dei parenti da estrarre
SELECT * FROM famiglia WHERE parente_id IN (
myLoop: LOOP
SET var = var + 1
[...]
END LOOP myLoop;
SET @x = var;
)
no no, fa' un esempio di cosa vuoi ottenere
ma tu non sai come costruire la parte che sta dentro la IN()?
Certo. Inserendo il nome campi separati da virgola.
Mi sto inventando queste cose solo per fare pratica e avere il pieno controllo del linguaggio... Come la maggior parte dei programmatori l'unico utilizzo dei database si estende alla loro creazione e alla creazione di semplici costrutti di query utilizzando le funzioni, le join e al massimo l'if.
C'è differenza fra pogrammare e programmare bene, e siccome il linguaggio sql non sempre offre esercizi pratici per aumentare le conoscenze (in fondo perchè fare un loop dentro una sql come sto tentando di farla io, quando puoi risolvere con il php o l'.asp.net e poi concatenarla) sto cercando di vedere cosa posso realmente fare, o cosa no.
Comunque vorrei ottenere:
SELECT * FROM famiglia WHERE parente_id IN (1,2,3)
o
SELECT * FROM famiglia WHERE parente_nome IN ('padre', 'madre', 'zio')
ma perché dici "ottenere"? sei tu che scrivi la query! a meno che il contenuto della IN() non debba provenire da altre tabelle
Si questo vero, se non è possibile fare ciò che voglio non fa nulla, però possono esistere casi in cui non posso farlo.
Se potessi farti vedere un esempio in php mi sarebbe tutto più facile...