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?
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?