Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[mysql] sorteren op squbqueries

Pagina: 1
Acties:

  • RSD
  • Registratie: Maart 2001
  • Laatst online: 08-02-2017
Ik heb een query met drie subqueries in de where clause. Echter nu sorteert mysql op een manier die hij zelf kiest. Ik wil graag dat hij de resultaten van de eerste subquery eerst zet erna die van de tweede subquery etc. Mijn query ziet er alsvolgt uit:

MySQL:
1
SELECT id FROM table WHERE id IN (SELECT id FROM table WHERE ...) OR id IN (SELECT id FROM table WHERE ...) OR (SELECT id FROM table WHERE ...)


Deze query is niet precies zoals ik hem heb, maar ik wil alleen weten of het mogelijk is om de resultaten van de eerste subquery eerst te tonen en dan die van de tweede en dan die van de derde.

Bij mij zelf zijn de subqueries dus anders, deze haalt het ook uit verschillende tabellen, dus antwoorden als, je kan het beter zonder subqueries doen, daar heb ik niks aan, want dat is gewoon niet mogelijk, om het te versimpelen heb ik het hier anders neergezet.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 30-11 11:35

Janoz

Moderator Devschuur®

!litemod

Misschien kun je beter een union gebruiken. Het zou mij niet verbazen wanneer dat zelfs efficiënter is dan het sorteren van de door jou gegeven query.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Gebruik union, select een constante in de queries en sorteer daar op.
RSD schreef op woensdag 26 september 2007 @ 12:39:Bij mij zelf zijn de subqueries dus anders, deze haalt het ook uit verschillende tabellen, dus antwoorden als, je kan het beter zonder subqueries doen, daar heb ik niks aan, want dat is gewoon niet mogelijk, om het te versimpelen heb ik het hier anders neergezet.
Dat het uit verschillende tabellen komt betekent niet meteen dat het alleen maar met subqueries mogelijk is. Wellicht dat als je toch union gaat gebruiken de losse queries flink eenvoudiger worden en zonder correlated subquery af kunnen en wellicht dat dat ook nog eens een gigantisch verschil qua performance maakt. :P

{signature}


  • RSD
  • Registratie: Maart 2001
  • Laatst online: 08-02-2017
Inderdaad, ik hen nu unions gebruikt en dat brengt mij een stuk verder. Alleen ik wil lde laatste union random ordenen, alleen dat doet hij niet.

  • lier
  • Registratie: Januari 2004
  • Laatst online: 17:54

lier

MikroTik nerd

RSD schreef op woensdag 26 september 2007 @ 13:31:
Inderdaad, ik hen nu unions gebruikt en dat brengt mij een stuk verder. Alleen ik wil lde laatste union random ordenen, alleen dat doet hij niet.
Waarom wil je een subresultaat sorteren, laat staan random ordenen ?
Kan je (mij) eens precies uitleggen wat je uiteindelijk wil ?

Eerst het probleem, dan de oplossing


  • RSD
  • Registratie: Maart 2001
  • Laatst online: 08-02-2017
De eerste twee resultaten wil ik zelf kiezen en de daarop volgende resultaten van de derde union wil ik random weergeven, maar dat lukt niet echt zie ik. In de manual staat wel hoe je alles random kan ordenen, maar dat wil ik niet

  • lier
  • Registratie: Januari 2004
  • Laatst online: 17:54

lier

MikroTik nerd

Is het niet veel eenvoudiger om een tijdelijke tabel aan te maken, deze te vullen met de "drie subqueries" en hierop vervolgens een select te doen ?

Dit is een oplossing die ik vaak in MSQL toegepast heb.

Eerst het probleem, dan de oplossing


  • RSD
  • Registratie: Maart 2001
  • Laatst online: 08-02-2017
ik heb het al door de derde query random te doen en dan een limit daar op te zetten. Deze limit had ik eerst niet.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 30-11 11:35

Janoz

Moderator Devschuur®

!litemod

Als het puur om het weergeven gaat, waarom moet het dan allemaal perse in 1 query? Je kunt ook gewoon de drie queries los uitvoeren en dan zelf achter elkaar afdrukken.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1