Avatar billede pjarnfelt Nybegynder
28. januar 2006 - 19:49 Der er 4 kommentarer og
1 løsning

current key

Er der en måde man ved hjælp af MySQL kan sige.

Jeg har en tabel på 100. Tag rækken ud hvor navn = "noget".
Hvilken nummer ud af de 100 (f.eks 47) er denne række når de alle er listet efter navn

Jeg tænkte på noget ligende:
SELECT magisk_statement(*) FROM produkter WHERE navn = "noget" ORDER BY navn LIMIT 0,100;

Dette giver så svaret 47.
Avatar billede erikjacobsen Ekspert
28. januar 2006 - 20:00 #1
Ja, sådan ca.  Utestet, men du tæller antallet under:

  SELECT count(*)+1 FROM produkter WHERE navn < "noget" ORDER BY navn
Avatar billede nielle Nybegynder
28. januar 2006 - 20:23 #2
Her er SQL Zoo's bud på den sag:

http://sqlzoo.net/howto/source/z.dir/tip546969/mysql
Avatar billede pjarnfelt Nybegynder
29. januar 2006 - 00:12 #3
genialt erikjacobsen.
Jeg ved ikke hvorfor, men det du har skrevet virker perfekt.
Smider du lige et svar denne vej.
Ved du om den metode har nogle restriktioner eller er specielt langsom?

Tak.
Avatar billede erikjacobsen Ekspert
29. januar 2006 - 00:20 #4
Hvis "navn" var et clustered index i MSSql ville jeg tro den var ganske effektiv. Det findes vist ikke i MySql, så der bør der vel være et almindeligt index på, og jeg er ikke sikker på hvor hurtige det så er, og hvilke tabeltyper man bør bruge. Men har du 100 poster, og du udfører den een gang hvert 37. minut, kan det være helt ligemeget.

Jeg samler slet ikke på point, tak.
Avatar billede pjarnfelt Nybegynder
29. januar 2006 - 23:19 #5
Hvor nobelt erik. Så tager jeg pointene tilbage :)
Endnu en gang tak for din hjælp.

Til næste gang :)
Patrick
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester