Newsgroup: it.comp.software.database
Titolo: SQL: Access & LIMIT

Salve a tutti
sto lavorando con una db access mediante degli script in PHP.
Ho dei problemi perň con l'istruzione LIMIT.
La mia query č questa:
$sql = "SELECT * FROM libri WHERE (titolo LIKE '%$testo%' OR descrizione
LIKE '%$testo%') AND (autore1 LIKE '%$autore%' OR autore2 LIKE '%$autore%'
OR autore3 LIKE '%$autore%') ORDER BY categoria,titolo";
ma se aggiungo LIMIT, come nella query seguente, mi da errore.
$sql = "SELECT * FROM libri WHERE (titolo LIKE '%$testo%' OR descrizione
LIKE '%$testo%') AND (autore1 LIKE '%$autore%' OR autore2 LIKE '%$autore%'
OR autore3 LIKE '%$autore%') ORDER BY categoria,titolo LIMIT 1,5;";
Sapete dirmi perchč? Access supporta LIMIT come istruzione SQL?
grazie a tutti
Roberto

La simtassi sembra quella di mysql, sei sicuro di usare la sintassi di
limitazione appropriata al db? Guarda la documentazione.
-- 
---
Francesco Galli / Cinghiale Mannaro
Personal: 
http://cinghialemannaro.splinder.com
TMS project: 
http://tms.inera.it

 ha scritto nel messaggio
news:A1nde.1318854$35.49...@news4.tin.it...
Access supporta LIMIT come istruzione SQL?
Ciao Roberto,
Access non supporta LIMIT, nel tuo caso puoi usare TOP per estrarre i primi
5 record
-----------
SELECT TOP 5 *
FROM ..........
-----------
Ciao
-- 
Giorgio Rancati
[Office Access MVP]

nel tuo caso puoi usare TOP per estrarre i primi 5 record
   ...e se uno volesse prendere, che so, i terzi cinque quale e' la
sintassi? Ho abbandonato sql server da un po', ma l'info torna sempre utile
:)
Grazie!

 ha scritto nel
messaggio news:42762...@x-privat.org...

Ciao Francesco,
sia in access che in sql server (fino alla 2000) puoi risolvere con tecniche
alternative.
poniamo di avere una query che estrae i nominativi in ordine di nome
--------
Select * From Tabel1 Order By Nome
---------
risultato
Id    Nome
------------
25    Gastone
14    Paperina
18    Paperino
21    Paperoga
45    Pippo
19    Pluto
12    Poldo
per estrarre la seconda terzina (quelli con Id 21,45 e 19)  faremo una
Select Top 3 escludento i primi tre nomi
es...
-----------------
SELECT TOP 3 *
FROM Tabel1 AS T1
    LEFT JOIN
           (Select Top 3 ID FROM Tabel1 ORDER BY Nome) AS T2 ON T1.Id=T2.Id
WHERE T2.Id IS NULL
ORDER BY Nome
-----------------
ovviamete se i nomi sono univoci si può fare a meno del campo Id e lavorare
solo sul campo Nome.


 ORDER BY Nome
   Mi sembra francamente estremamente macchinosa come soluzione.
Nell'esempio di cui sopra e' fattibile, ma se la query e' piu' complessa
questo comporta un *enorme* decadimento prestazionale, non trovi?
Intendiamoci, non sto criticando la tua soluzione (ci manca solo), solo la
mancanza di una sintassi di limitazione decente.
   Non oso nemmeno pensare a cosa potrebbe succedere se invece di select
stupide su tabelle stupide stessimo parlando di VISTE. Gia' ho avuto
esperienze dirette di quanto siano lente, se poi mi tocca farci questo gioco
per farci una cosa banale come la paginazione... brrr, si va a due all'ora
davvero :)
   Mi parlavi di SQL server fino al 2000: e' cambiato qualcosa nelle ultime
versioni?
Grazie mille.. sta venendo fuori un bel thread :)
Francesco

 Grazie mille.. sta venendo fuori un bel thread :)
:-)
