Clausola LIMIT non standard in Sql

radioButton

Utente Attivo
26 Dic 2013
35
0
6
Arezzo
Ciao,
mi sono accorto, o almeno a me non funziona, che in Sql non è valida la clausola LIMIT.
Mi spiego:
se per esempio ho una tabella Prodotti che mi elenca una serie di prodotti e voglio togliere l'ultimo record mi verrebbe in mente la query:

$query="DELETE FROM Prodotti
ORDER BY id DESC
LIMIT 1 ";
sqlsrv_query($this->conn, $query);

In realtà però così non funziona ed ho letto in rete che ciò è dovuto al fatto che LIMIT è una clausola non standard per Sql (qualcuno me lo può confermare?);

quindi per togliere l'ultima riga di una qualsiasi tabella devo fare un procedimento piuttosto macchinoso ossia:

selezionare con SELECT tutti i record della tabella fino a quando ne esistono con l'istruzione WHILE,
ad ogni selezione assegnare alla variabile $id il valore $Result[0]
e poi anadare ad eliminare con DELETE il record con l'ultimo $id assegnato (è arzigogolata anche da spiegare sta procedura...).

Se poi volessi eliminare l'ultimo recordo di un determinato prodotto dovrei selezionare e scorrere tutti i record aventi per esempio un determinato id_prodotto e proseguire come sopra...

Domanda:

non esiste in Sql una istruzione che possa rendere la procedura + snella?
 

Discussioni simili