webForumDet fria alternativet

Knepig LIMIT

4 svar · 195 visningar · startad av Kullervo

KullervoMedlem sedan juli 200226 inlägg
#1

Scenario:
Jag har en tabell som innehåller information om bilder. Tabellen innehåller ett ID-nummer (unique) och ett filnamn (unique) till bilden.

Fråga:
Hur skriver jag en effektiv SQL-fråga som tar ut filnamnet till en bild med ett visst ID-nummer SAMT bilden som ligger före och efter i bokstavsordning på filnamnet? LIMIT -1,3 fungerar ju inte eftersom WHERE id='det-sökta-id-nummret' bara stämmer överens på en av bilderna.

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Om du använder Mysql så går det inte att få till med en fråga om du inte har 4.1.

Annars så får du dela upp det i flera frågor

KullervoMedlem sedan juli 200226 inlägg
#3

Jag kom tillbaka nu för att tillägga att det just är mySQL jag kör med, men tyvärr bara 4.0. Hur hade du tänkt att man enkelt kan få ut reslutatet med fler frågor? Jag kan inte komma på nån snygg lösning... Just nu läser jag ut de troligaste delarna av tabellen först och går igenom all data med PHP. Inte så effektivt då tabellen växer.

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Om du hämtar filnamnet för ett visst id med en fråga så kan du få föregående och nästa filnamn med hjälp av

select 'prev', fiilnamn,id
from t
where filnamn < '$filnamn'
order by filnamn desc
limit 1
union all
select 'next', fiilnamn,id
from t
where filnamn > '$filnamn'
order by filnamn asc
limit 1
KullervoMedlem sedan juli 200226 inlägg
#5

Hehe. Låter så självklart i efterhand...

Tack för hjälpen!

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