Jump to content
php.lv forumi

SQL kverijs


nemakuphp

Recommended Posts

Vispārīgā tabulas struktūra ir apmēram šāda:

 

id | name | statuss

 

Kā veidot kveriju, lai izvadītu, pieņemsim, 10 ierakstus (labi, tas būtu viegli, LIMIT 10), bet ja ieraksti, kam statuss = 0 ir vairāk kā 10, tad izvelk tos visus, kuriem statuss ir 0?

Link to comment
Share on other sites

Tu tēmu izlasīji līdz galam?

 

ja ieraksti, kam statuss = 0 ir vairāk kā 10, tad izvelk tos visus, kuriem statuss ir 0

 

Vispārīgā gadījumā tas būtu

 

SELECT * FROM table ORDER BY id DESC LIMIT 10

 

bet nav zināms, vai ieraksti ar statuss 0 būs vairāk kā 10, jo ja ieraksti ar statuss = 0 ir mazāk kā 10, tad var izvadīt arī ierakstus, kuriem statuss = 1

Edited by nemakuphp
Link to comment
Share on other sites

Izklausās ka visa šitā pasākuma loģika ir stipti .. emm .. nepareiza.

 

Liekas labakais ko tu šitādā gadījumā vari izdarīt ir uzstaisīt SQL procedūru,

kas šito norealizē.

 

Bet man tomēr interesē: " Kāpēc tev vajag šitād dīvainu rezultātu no SQL ? "

Edited by wintermute
Link to comment
Share on other sites

Un kas tur būtu tik dīvains?

 

Izvilkt vai nu pēdējos 10 ar jebkādu statusu, vai visus ar statusu 0, ja tādi ir vairāk kā 10

 

EDIT: Protams, ja jums tas liekas par sarežģītu, varēšu arī iztikt, izdomāšu kaut ko citu.

Edited by nemakuphp
Link to comment
Share on other sites

Risinājums caur pakaļu. :D

 

SELECT * FROM tabula WHERE statuss=0 and (SELECT COUNT(*) FROM tabula where statuss=0)>10
UNION ALL
SELECT * FROM tabula WHERE (SELECT COUNT(*) FROM tabula where statuss=0)<=10 ORDER BY id DESC LIMIT 10

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...