ottimizzazione query

salve

in giro per la rete ho risolto il mio problema (di trovare la chiave dell'ultima tupla inserita nella tabella e passarla alla condizione) scrivendo la seguente query sql:

select <colonna> from <tabella>,(select max(<pk>) as valore from <tabella>)ultimo where <pk>=ultimo.valore;

vorrei sapere due cose:

[*]di preciso cosa fa mysql con (select max(<pk>) as valore from <tabella>)ultimo?

[*]esiste un altro modo per ottenere lo stesso risultato?[/list]

grazie :)

inviato 8 anni fa
larchitetto
modificato 8 anni fa
X 0 X

Quella query cerca il valore massimo del campo <pk> memorizzato nella tabella. Se quel campo veniva incrementato ad ogni inserimento allora si presume che il valore massimo coincida con l'ultimo valore inserito.

Se perņ stai usando un campo autoincrement di MySQL allora per recuperare l'ultimo valore inserito basta richiamare la funzione mysql_insert_id() appena dopo aver eseguito la query di inserimento.

Vedi il secondo esempio, alla riga 60:

http://www.phpnews.it/corsi/corso-php-mysql/inserimento-dati/

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

sisi avevo letto l'articolo e usato in altri contesti :D

in questo caso stavo solamente eseguendo delle query dalla shell di mysql :D e mi serviva recuperare l'ultima riga della tabella :D

grazie

risposto 8 anni fa
larchitetto
modificato 8 anni fa
X 0 X

via shell poi usare questa query: SELECT LAST_INSERT_ID()

ti rimando alla documentazione ufficiale per approfondire alcuni comportamenti di quella funzione:

http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

grazie =D

risposto 8 anni fa
larchitetto
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda