| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
xtremecris
Data înscrierii: 13/Feb/2004
Mesaje: 32
Locație: Bucuresti, Regie
|
| Trimis: Mar Iul 27, 2004 8:27 pm Titlul subiectului: cautare ultima inregistrare |
|
|
Vreau sa imi returneze ultima inregistrare care corespunde criteriilor de cautare(nu pe toate). Concret scriu intr-o tabela un camp ID(care nu e id al inregistrarii ptr ca apare de mai multe ori) si un string. Imi trebuie ultimul string cu un anumit ID. Spre exemplu:
ID STR
1 'Alina'
2 'Mariana'
1 'Maria'
trebuie sa imi returneze la cautarea dupa ID=1 stringul 'Maria'. |
|
| Sus |
|
Troto
Data înscrierii: 29/Iun/2004
Mesaje: 249
Locație: Brasov
|
| Trimis: Mar Iul 27, 2004 11:42 pm Titlul subiectului: |
|
|
Poate sunt eu prea obosti, dar ai putea reformula ?
Si tabela aia de care spui tu.. e in baza de date sau matrice sau ce ? |
|
| Sus |
|
smallAdmin
Data înscrierii: 21/Mai/2004
Mesaje: 117
Locație: Bucuresti
|
| Trimis: Mie Iul 28, 2004 9:20 am Titlul subiectului: |
|
|
Cod: select STR from the_table where ID=xxx order by STR desc limit 1
cre' ca asta vrei |
|
| Sus |
|
Troto
Data înscrierii: 29/Iun/2004
Mesaje: 249
Locație: Brasov
|
| Trimis: Mie Iul 28, 2004 11:07 am Titlul subiectului: |
|
|
| dar daca face asa de fiecare data ii va selecta aceasi inregistrare ceea ce e aiurea. oricum, cred ca nu s-a exprimat bine cu ce vroia |
|
| Sus |
|
smallAdmin
Data înscrierii: 21/Mai/2004
Mesaje: 117
Locație: Bucuresti
|
| Trimis: Mie Iul 28, 2004 12:47 pm Titlul subiectului: |
|
|
Troto a scris: dar daca face asa de fiecare data ii va selecta aceasi inregistrare ceea ce e aiurea. oricum, cred ca nu s-a exprimat bine cu ce vroia
eu i-am raspuns la intrebare :D |
|
| Sus |
|
xtremecris
Data înscrierii: 13/Feb/2004
Mesaje: 32
Locație: Bucuresti, Regie
|
| Trimis: Mie Iul 28, 2004 1:55 pm Titlul subiectului: |
|
|
Prin ultima inregistrare ma refer la ultima care apare in baza de date ce are id-ul pe care il cer eu.
Ai ordonat dupa str si e posibil ca ultima inregistrare sa aiba 'ANA' si sa gaseasca alta inregistrare ptr ca 'ANA'<'MARIA' etc.
Cred ca o solutie este sa asignez un camp care se autoincrementeaza dupa fiecare adaugare si sa ordonez dupa el descending.
INDICE ID STR
1 1 'Maria'
2 2 'Ana'
3 1 'Alina'
4 1 'Daniela'
Deci:
Cod: select STR from the_table where ID=xxx order by indice desc limit 1 |
|
| Sus |
|
smallAdmin
Data înscrierii: 21/Mai/2004
Mesaje: 117
Locație: Bucuresti
|
| Trimis: Mie Iul 28, 2004 2:04 pm Titlul subiectului: |
|
|
xtremecris a scris: Prin ultima inregistrare ma refer la ultima care apare in baza de date ce are id-ul pe care il cer eu.
...
Cred ca o solutie este sa asignez un camp care se autoincrementeaza dupa fiecare adaugare si sa ordonez dupa el descending.
...
Deci:
Cod: select STR from the_table where ID=xxx order by indice desc limit 1
Adica vrei sa iei ultima inregistrare inserata in baza de date. Atunci da, o coloana auto_increment e solutia. Si interogarea e fix asta de mai sus. |
|
| Sus |
|
arond
Data înscrierii: 11/Mar/2004
Mesaje: 580
Locație: 127.0.0.1
|
| Trimis: Mie Iul 28, 2004 3:12 pm Titlul subiectului: |
|
|
Problema e alta. Lumea traieste gresit cu impresia ca un tabel intr-un DBMS e ordonat, ca INSERT-urile se fac intr-o anumita ordine, etc, etc.
FALS.
Un tabel e un tabel, nu exista o ordine implicita, bla... bla... La modul general nici auto increment nu ajuta, pentru ca sunt DBMS care genereaza arbitrar si nu neaparat in secventa valorile auto increment. Altele definesc SEQUENCEs, la altele inregistrarile sunt time stampped, etc, etc.
Pentru MySQL si auto increment, solutia lui SmallAdmin e buna.
Numa' bune. |
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |