Jump to content
php.lv forumi

Kā to dabūt gatavu?


Pentiums

Recommended Posts

SELECT * FROM raksti ORDER BY id, 10

Ar šo te viņš izvelk rakstus un parāda pēdējos desmit... Bet kā dabūt to gatavu lai viņš parāda sākot no pēdējajiem desmit un beidzot ar pēdējajiem divdesmit?

Edited by Pentiums
Link to comment
Share on other sites

Nevar būt, ka tas kverijs tev strādā (tb atgriež pēdējos 10). Pareizi būtu:

SELECT * FROM raksti ORDER BY id LIMIT 10

 

Un vispār iesaku arī kārtošanas virzienu norādīt (ASC vai DESC). Tavā gadijumā, ja nejaucos, DESC vajag.

 

Bet lai dabūtu, ko vēlies, tev vispār vajadzēs divus kverijus.

SELECT * FROM raksti ORDER BY id DESC LIMIT 10
SELECT * FROM raksti ORDER BY id ASC LIMIT 20

 

Lai apvienotu vienā resultsetā, vari mēģināt izmanto UNION.

Edited by andrisp
Link to comment
Share on other sites

(SELECT a FROM t1 WHERE a=10 AND B=1)
UNION
(SELECT a FROM t2 WHERE a=11 AND B=2)
ORDER BY a LIMIT 10;

 

Kaut kas šajā Select teikumā nav labi. UNION pirmkārt atlasa tikai unikālās kombinācijas, tas nozīmē, ka atbilstoši pašreizējiem kritērijiem Tev atlasīs iespējams daudzus ierakstus ar vērtūbu 10 un iespējams daudzus ierakstus ar vērtību 11, bet tā kā UNIONS visas liekās kopijas izmetīs ārā tad paliks ne vairāk kā viens 10 un viens 11 un tad LIMIT 10 ir lieks.

 

Paskaties šeit Kopas operatori Select pieprasījumā ko nozīmē UNION un UNION ALL.

 

Gints Plivna

Link to comment
Share on other sites

×
×
  • Create New...