jag har en sträng som ser ut så här: Vad vill du göra? Det fungerar som så att man har gjort några val tidigare på webbsidan och på så vis fått ett gäng idnr i en session(""). Om det inte är så noga med exakt hur många id:n som kommer med varje gång så kan du ju söka efter fösta kommatecknet efter t ex 1000 tecken (ca 250 tresiffriga id:n, ca 200 fyrsiffriga etc). Detta har jag för mig går att göra med String.IndexOf() (.net) och InStr() (pre-.net) genom att ange startpositionen 1000 och söka på kommatecken. Sedan är det ju en enkel sak att knåpa ihop SQL-satsen enligt din beskrivning. Om det rör sig om så många id nummer så skulle jag inte lagra id nummren i en sessions variabel. Per: Det fungerade fint, tackar!Dela upp en sträng
"6463,13546,311,3184" osv
Den kan ibland innehålla mer än 1000 tal och det skapar problem för databasen.
Kan man dela upp den per 800? Få in alla i en array eller liknande och loopa igenom med flera databasanrop (t.ex. 2 st databasanrop om det är 1500 tal i den första strängen)?
edit:
Det är alltså som så att min sql liknar den här: SELECT * FROM tabell WHERE id IN (6463,13546,311,3184)Sv: Dela upp en sträng
Finns id värdena redan i databasen?
Vad är det som avgör vilka id värden som skall ingå i urvalet?Sv:Dela upp en sträng
Sen på en sida så vill jag lista alla dessa poster som stämmer överens med idnummren man valt.
Lösningen jag har nu är att jag kör en SPLIT(sträng, ",") och får då allt i en array som loopas igenom och kör en databasfråga för varje (WHERE idnr = 12). Men det tar lite för lång tid om man har 2000 idnr.
Skulle därför vilja ha så att den kör fler per gång (WHERE idnr IN (12,13,14 osv)).Sv: Dela upp en sträng
Alternativet är ju att utgå ifrån den kod du har och i stället för att anropa databasen varje varv i loopen så anropar du den bara när loopvariabeln modulus 100 = 0 för att ta 100 poster i taget. Sedan får du lägga till lite kod för att slå ihop strängen varje varv. Solklart? :-)Sv: Dela upp en sträng
Skapa en tabell.
Lägg till id i tabellen med och länka mot sessionsid och/eller användarid.
På så sätt kan du skapa en effektiv fråga med en join.Sv:Dela upp en sträng
Andreas: Jo jag har tänkt i dom banorna med faktist. Har redan en sån lösning för sökresultatet. Men har tänkt att det kanske skulle belasta databasen onödigt mycket då kunderna bockar i och bockar ur dessa idnummer en och en i ett halvhögt tempo möjligtvis.