webForumDet fria alternativet

Klistrade poster

3 svar · 731 visningar · startad av ironhead

ironheadMedlem sedan mars 20011 346 inlägg
#1

Hej igen ;)

Jag har ett fält i databasen (bit) där jag klickar i "klistrad" eller inte.

de poster som har detta fält markerat, vill jag alltid ska loopas ut först, sedan resten, hur skriva?

--Loopa ut alla poster som har "glued" ikryssad
SELECT * FROM tabell WHERE catid=1 AND glued=true

--Loopa ut resten av posterna med sorteringsordning
SELECT * FROM tabell WHERE catid=1 AND glued=false
ORDER BY publishdate

Hur kan man skriva denna selectsats i en procedur på ett korrekt/effektivt sätt?

TomasJMedlem sedan feb. 200563 inlägg
#2

Re: Klistrade poster

SELECT * FROM tabell WHERE catid=1 
ORDER BY glued, publishdate

/ Tomas

TomasJMedlem sedan feb. 200563 inlägg
#3

Re: Re: Klistrade poster

Nej förresten, om du använder SQL-server och har ett bit-fält som du låter motsvarar klickad/klistrad så sortera istället på "glued desc" i första hand för att dessa ska komma först:

SELECT * FROM tabell WHERE catid=1 
ORDER BY glued desc, publishdate

Å andra sidan fungerar inte "where glued=true" som du skriver, med sql server, så det är ju frågan om vilken RDB-hanterare som du egentligen använder, men principen borde i alla fall vara att sortera på glued i första hand och sedan på det andra fältet, för att på så sätt slippa två sql-satser.

/ Tomas

ironheadMedlem sedan mars 20011 346 inlägg
#4

Tack så mycket! :bire

129 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)