View Full Version : [mysql]Ottimizzare le query
E' possibile fare più SELECT in una sola query della stessa tabella?
Ad esempio prendere due record differenti in base a due caratteristiche differenti:
SELECT record IN tabella WHERE caratteristica="data" AND SELECT record IN tabella WHERE caratteristica="data"
esiste una cosa simile?
Sempre la stessa cosa dell'esempio sopra è possibila farla in due tabelle differenti? Cioè i record non si trovano sulla stessa tabella.
E con l'UPDATE è possibile aggiornare due record sempre come nell'esempio sopra?
Ma più che altro si può fare una roba simile: UPDATE record+=data WHERE ecc ecc
Perchè ora per appendere roba ad un record devo prima fare una query di select per leggerlo e poi faccio l'update con la roba appena letta + altra roba.
E' possibile fare più SELECT in una sola query della stessa tabella?
Ad esempio prendere due record differenti in base a due caratteristiche differenti:
SELECT record IN tabella WHERE caratteristica="data" AND SELECT record IN tabella WHERE caratteristica="data"
esiste una cosa simile?
se la tabella è la stessa basta fare: SELECT record IN tabella WHERE caratteristica="data" OR caratteristica="data2"
Sempre la stessa cosa dell'esempio sopra è possibila farla in due tabelle differenti? Cioè i record non si trovano sulla stessa tabella.
con le join è possible farlo ma dovrebbero avere un campo in comune le 2 tabelle, e per comune vuol dire che una tabella ha una chiave primaria che la seconda tabella usa come chiave esterna...se mi sbaglio qualcuno mi corregga
E con l'UPDATE è possibile aggiornare due record sempre come nell'esempio sopra?
Ma più che altro si può fare una roba simile: UPDATE record+=data WHERE ecc ecc
Perchè ora per appendere roba ad un record devo prima fare una query di select per leggerlo e poi faccio l'update con la roba appena letta + altra roba.
si, direi di si ti posto un breve esempio
UPDATE Employee
SET salary = salary * 1.25
WHERE name = 'Bob'
grazie mille!
Per i SELECT le mie tabelle non hanno nulla in comune, rappresentano prprio due cose etramemente diverse... :(
Nell'esempio dell'update hai usato un campo INT immagino, i miei record sono tutti di tipo TEXT xò, è possibile farlo lostesso? ora provo :D
allora forse potresti provare a creare una view, prova a documentarti un poco.
se sono testuali non riesci a fare calcoli del genere
ah immaginavo, guardo cosa sono le view allora...
Per il testo esiste la medesima cosa ma bisogna usare la funzione CONCAT
Grande!
se la tabella è la stessa basta fare: SELECT record IN tabella WHERE caratteristica="data" OR caratteristica="data2"
Ho provato ma in questo modo mi mostra solo il primo dei risultati.
Forse non mi sono spiegato io, io non volgio scelgiere lo stesso record in base a due caratteristiche, ma due record!
Ad esempio se ho una tabella così popolata:
Nome : pippo
Amico di : paperino
Nemico di : bassotti
Nome : pluto
Amico di : topolino
Nemico di : titty
Ecco io vorrei poter leggere il campo "Amico di:" per ogni record. Si può fare con una sola query?
Edit: come nn detto avevi capito benissimo e difatti funziona :D
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.