webForumDet fria alternativet
Logga in / Bli medlem

fråga om SELECT

Databaser & SQL

3 svar · 188 visningar · startad av Virrdo

Medlem sedan okt. 2001152 inlägg
Frågan#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")
269 ms totalt · 4 externa anrop · v20260731065814-full.14655e19
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)