Jump to content
php.lv forumi

TOP 10


viss_kedaas

Recommended Posts

Man ir nepieciešams Top 10 skripts.

Tikai nav ne mazākās nojausmas kā to lai uztaisa.

nepieciešams lai no MySQL vienas tabulas viena lauka izvelk TOP 10.

 

Tabula izskatās apmēram tā:

 

id | niks | skaits

0 viss 0

1 mumins 3

 

Vai kāds lūdzu var man palīdzēt ? :(

Link to comment
Share on other sites

Man ir nepieciešams Top 10 skripts.

Tikai nav ne mazākās nojausmas kā to lai uztaisa.

nepieciešams lai no MySQL vienas tabulas viena lauka izvelk TOP 10.

 

Tabula izskatās apmēram tā:

 

id  |  niks        | skaits

0    viss              0

1    mumins        3

 

Vai kāds lūdzu var man palīdzēt ?  :(

20082[/snapback]

 

Kaut kā tā:

SELECT * FROM tabula ORDER BY skaits DESC LIMIT 0, 10;

Link to comment
Share on other sites

Šis nav vispirms jāizlasa: http://dev.mysql.com/doc/mysql/en/select.html#id3170699 ?

Īsumā sakot - LIMIT x,y nozīmē, ka no kverija, kurš izpildītos bez tās LIMIT daļas, jāpaņem ieraksti sākot ar x rindiņu no augšas skaitā tikai y. T.b. LIMIT 0,10 nozīmē no 0-tās (paša sākuma) tikai 10 rindiņas. Vispār jau LIMIT 0,y ir ekvivalents ar LIMIT y, nezinu kāpēc tur to 0 vajag!

SELECT * FROM tabula ORDER BY skaits DESC LIMIT 10

Edited by bubu
Link to comment
Share on other sites

ā skaidrs kā tas darās, problēmu atrisināju. bet vai Jūs varētu man paskaidrot kāpēc limit = 0 un kpc tur ir 10 (kam tas ?) un jo nozīmē DESC?

 

Saprotiet es negribu dzīvot uz ctrl + c un ctrl +v ...

vēlos izprast to lietu...

20085[/snapback]

Principā ieteiktu apskatīties MySQL manuāli(instalācijā bij .htm formātā pieejams)

 

Te palasi par DESC un ORDER BY:

http://dev.mysql.com/doc/mysql/en/sorting-rows.html

 

Te par LIMIT:

The LIMIT clause can be used to constrain the number of rows returned by the SELECT  statement. LIMIT takes one or two numeric arguments, which must both be positive integer constants (including zero).

 

With two arguments, the first argument specifies the offset of the first row to return, and the second specifies the maximum number of rows to return. The offset of the initial row is 0 (not 1):

 

mysql> SELECT * FROM table LIMIT 5,10;  # Retrieve rows 6-15

 

For compatibility with PostgreSQL, MySQL also supports the LIMIT row_count OFFSET offset syntax.

 

To retrieve all rows from a certain offset up to the end of the result set, you can use some large number for the second parameter. This statement retrieves all rows from the 96th row to the last:

 

mysql> SELECT * FROM table LIMIT 95,18446744073709551615;

 

With one argument, the value specifies the number of rows to return from the beginning of the result set:

 

mysql> SELECT * FROM table LIMIT 5;    # Retrieve first 5 rows

 

In other words, LIMIT n is equivalent to LIMIT 0,n.

Link to comment
Share on other sites

Saprotiet es negribu dzīvot uz ctrl + c un ctrl +v ...

vēlos izprast to lietu...

 

nu tev jau pašos pamatos trūkst loģiskās domāšanas... kur nu vēl uz sarežģītām lietām :)

 

pats uzdevi jautājumu par TOP10, tagad izdomā kāpēc tur ir pie limit ielikts 10 !? :)

Link to comment
Share on other sites

nu tev jau pašos pamatos trūkst loģiskās domāšanas... kur nu vēl uz sarežģītām lietām :)

 

pats uzdevi jautājumu par TOP10, tagad izdomā kāpēc tur ir pie limit ielikts 10 !? :)

20088[/snapback]

 

delfīn, tik tagad izlasīju un sapratu...

tas tāpēc lai no visiem rezultātiem atgrieztu tikai 10 lielākos kas sakārtoti no "skaits" kolonnas un nulle ir tāpēc ka visus ierakstus sākot no 0 (pirmā) viņš jau sāk skatīties...

un DESC ir lai kārto reversā secībā (sākot ar lielāko)

Vai ne tā? Ja kļudos lūdzu izlabojiet

šķiet ka sapratu...

katrā ziņā tagad zināšu...

 

Paldies puiši ;)

Edited by viss_kedaas
Link to comment
Share on other sites

×
×
  • Create New...