fråga om SELECT

Databaser & SQL

3 svar · 207 visningar · startad av Virrdo

Medlem sedan okt. 2001152 inlägg
Trådstart#1

Hur skriver jag en SELECT sats som först ska hämta resultatet med "tiden" mellan 12.00 och 24.00 och sen med "tiden" mellan 00.00 och 12.00 ?

Medlem sedan dec. 200012 464 inlägg
#2
select * from t
order by case when hour(dateColumn) between 12 and 24 then 0 else 1 end
Medlem sedan okt. 2001152 inlägg
#3

Jag kanske skulle ha varit litet mer specifiderad:
jag har en kolumn som heter "tid", jag använder mig alltså inte av någe av mysql's inbyggda tidsfunktioner.

Satserna jag använder nu ser ut

mysql_query("SELECT * FROM tabellen WHERE dag='$dag' HAVING tid >= 12.00 AND tid <= 24.00 ORDER BY tid ASC";

respektive

mysql_query("SELECT * FROM tabellen WHERE dag='$dag' HAVING tid >= 00.00 AND tid < 12.00 ORDER BY tid ASC")

min fråga är alltså hur jag ska gå till väga för att "slå ihop" de båda satserna så jag slipper onödig kod

Medlem sedan dec. 200012 464 inlägg
#4
mysql_query("SELECT * FROM tabellen WHERE dag='$dag' ORDER BY case when tid between 12.00 and 24.00 then 0 else 1 end")
262 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)