Jump to content
php.lv forumi

vaicājuma izveidošana ar dažādiem nosacījumiem


ray

Recommended Posts

ideja ir tāda, ka vajadzētu izveidot vaicājumu (visu vienā vaicājumā), bet nav pagaidām ne jausmas kā to izdarīt. Tātad ir tabula (id, title, number, statuss). Vajadzētu atlasīt no sākuma visus ierakstus, kur number=4 un pēc tam lai visi pārējie tabulas ieraksti (izņemot jau iepriekš atlasītos). Ir idejas?

Edited by ray
Link to comment
Share on other sites

easy:

SELECT *, IF(number = 4, 1, 2) AS kaartiiba FROM tabule ORDER BY kaartiiba

tik performance gan var gadīties nebūs labāka par diviem atsevišķiem kverijiem.

 

otrs variants ir:

(SELECT 1 AS kaartiba, * FROM tabule WHERE number = 4) UNION (SELECT 2, * FROM tabule WHERE number != 4) ORDER BY kaartiiba

Link to comment
Share on other sites

Gadījumā, ja number kolona drīkst būt NULL, tad abi vaicājumi nav ekvivalenti ;)

 

Jebkurā gadījumā, man jau liekas, ka skanēt vienreiz tabulu un sakārtot pēc kaut kādas izrēķinātas izteiksmes ir ātrak nekā skanēt 2reiz un arī tomēr veikt kārtošanu. Bet nu protams, ka tikai tests dotu mums precīzu atbildi un iespējams tā rezultāts būtu atkarīgs no datu sadalījuma :)

 

Ak un vēl UNION vietā tomēr derētu UNION ALL, lai pilnīgi atšķirīgu kopu gadījumā neveiktu kaut kādu unikālo ierakstu meklēšanu.

 

Gints Plivna

http://datubazes.wordpress.com

Edited by Gints Plivna
Link to comment
Share on other sites

×
×
  • Create New...