order: eerst where tag = ... dan where title = ...

Status
Niet open voor verdere reacties.

ecross

Gebruiker
Lid geworden
4 mrt 2009
Berichten
638
hallo,
ik denk dat mij title mijn vraag al een beetje verraad maar ik zal hem nog eens stellen:

ik wil een query met eens speciale order:
eerst where tag = '....' and dan de reseltaten where title = '....'

snap je wat ik bedoel?
 
Je bedoelt selecteren op 2 criteria?

[sql]
SELECT *
FROM table
WHERE tag = 'iets' AND title = 'iets anders'
[/sql]
?

Of bedoel je dat je het wil ordenen op tag, en dan op title?
[sql]
SELECT *
FROM table
ORDER BY tag ASC, title DESC
[/sql]

(ASC/DESC naar eigen inzicht)

Anders moet je je vraag een klein beetje uitbreiden want dan begrijp ik em niet :P
 
ik denk dat er iets tussen in is,

ik wil eerst een lijst met records where tag = '...'
en daarda de lijst met records where title = '...'

een voorbeeldje:
dit is de database:

tag - title
-------------
bas - blob
aap - blob
blob - simon

en dan moet eruit komen als je doet: select * from table where tag = 'blob' or title='blob'
blob - simon
bas - blob
aap - blob.

dus eerst waar tag = 'blob' en daarnaa waar title='blob'
en dus niet op alfabetische volg orde of zoiets.

nu duidelijk?
 
Probeer dit eens:

[sql]
SELECT *
FROM table
WHERE tag = 'blob' OR title = 'blob'
ORDER BY tag = 'blob'
[/sql]
 
Volgens mij geeft die query niet het juiste resultaat: als bijv tag='aap' en title='blob' komt dit record nu bovenaan, terwijl TS het juist onderaan wil. Volgens mij bereik je het gewenste met een case in de order-by:

[SQL]SELECT *
FROM TABLE
WHERE tag = 'blob' OR title = 'blob'
ORDER BY case when tag = 'blob' then 1 else 2 end[/SQL]
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan