>Aggirerò il problema così:
>memorizzo in un dizionario le coppie campi/valori che creano l'istanza
di database in un dato momento. Così non dovrò cercare gli ID tramite un IN.
Non ho chiaro quello che devi fare, ma indubbiamente vi e' un limite
nella lunghezza della espressione.
Pero' se cosi' e' , e se come ho capito te memorizzi gli ID in una
tabella (il tuo dizionario),
li puoi invocare cosi':
where
campo1 IN (select valore from dizionario)
;
Se il problema e' la lunghezza della stringa SQL che non puo superare
una certa lunghezza,
questa ultima sintassi dovrebbe funzionare.
E forse potresti anche usare
where
campo1 EXISTS (select valore from dizionario)
A.
Il 13/09/2014 19:26, Luca Mandolesi ha scritto:
Il giorno 13 settembre 2014 13:45, Andrea Peri <aperi2...@gmail.com
<mailto:aperi2...@gmail.com>> ha scritto:
Io non userei una serie smisurata di AND,
anche perche' metti a dura prova l'ottimizzatore della query.
Proverei a usare invece il costrutto IN
where
campo1 IN ('valore1','valore2','valore3',.....)
No, non funzia, lo vede sempre come un eccesso di patametri
Anche su postgres.
Postgres digerisce anche i sassi. Non ha problemi
prova e facci sapere se questo ammette piu valori di 999
Aggirerò il problema così:
memorizzo in un dizionario le coppie campi/valori che creano l'istanza
di database in un dato momento. Così non dovrò cercare gli ID tramite
un IN.
Nel caso avessi un'istanza di database che corrisponde a tutti i
record faro solo una query id > 0.
Per eliminare per esempio più di 1000 record non farò altri che
segmentare i delete in pacchetti da 500.
--
-----------------
Andrea Peri
. . . . . . . . .
qwerty àèìòù
-----------------
_______________________________________________
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni
dell'Associazione GFOSS.it.
666+40 iscritti al 5.6.2014