webForumDet fria alternativet

Välja ut nummer med IN

Databaser & SQLur Databashanterare & SQL

6 svar · 526 visningar · startad av bigsky

Medlem sedan maj 2002821 inlägg
Frågan#1

I databasen ligger en kolumn som heter PageId. Jag vill välja data från databasen med IN beroende på vad Querystingen lnkid har för värde. I PageId har jag sparat värdena i formatet 1, 2, 14, 20 osv. PageId är ett textfält men måste väl antagligen vara ett nummerfält, annars blir det typblandningsfel. Men gör jag PageId till ett nummerfält får jag ingen data ut databasen. Det går ju inte att spara datan i formatet 1, 2, 14, 20 i ett nummerfält. Hur göra?

WHERE PageId LIKE (" & Request.QueryString("lnkid") & ")
Medlem sedan dec. 19996 721 inlägg
#2

Du menar att du har lagrat en kommaseparerad lista i PageId? Det är inte bra. Gör om. Skapa en relationstabell.

Annars..

WHERE ', ' + PageId  + ',' LIKE '%, " & clng(Request.QueryString("lnkid") & ",'"

Ineffektivt som tusan. Och kom ihåg, stoppa aldrig in värden från request direkt i en SQL-sats (därav clng).

Medlem sedan maj 2002821 inlägg
#3

Anledningen till att jag gjort så här är att jag vill veta vilka länkar till en meny som jag ska skriva ut, beroende på vilken sida som visas. Länkarna, underlänkarna osv. är ordnade i en relationstabell. Hur kan jag annars tala om för SQL-stringen vilken sida som visas och vilka respektive länkar som ska skrivas ut?

Medlem sedan dec. 19996 721 inlägg
#4

Visa gärna lite tabellutdrag så kanske jag förstår bättre.

Medlem sedan maj 2002821 inlägg
#5

Man kanske kan loppa igenom PageId och se om lnkid stämmer med något av talen. Och om det gör det, skriva ut Id:et för den rad som lnkid stämmer med talet i PageId? Hur skulle det se ut?

1.jpg
Medlem sedan nov. 2003310 inlägg
#6

Mitt förslag är att du designar om din databas och kör en kopplingtabell som innehåller id och pageid. Mycket enklare att arbeta med.

Medlem sedan maj 2002821 inlägg
#7

Men hur skulle en sån SQL-fråga se ut?

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