Om jag har en sträng t.ex: "45;34;22;33;"
och så vill jag öppna en tabell med poster där ID-numret finns i den strängen. Hur gör jag då?
6 svar · 292 visningar · startad av nill
Om jag har en sträng t.ex: "45;34;22;33;"
och så vill jag öppna en tabell med poster där ID-numret finns i den strängen. Hur gör jag då?
Gör om datamodellen. Det kommer aldrig att bli bra. Desto längre du väntar desto mer jobb blir det.
inte?
det gick så här ivarjefall:
[KOD]
SELECT * FROM oar WHERE INSTR('".$userOar."', ID) > 0"
Jag missförstod lite. (Ganska mycket ;) , ursäkta.)
Din kod fungerar inte i alla lägen, tex om id = 3 så kommer du att få poster tillbaka.
$query = "select * from oar where id in (" .
str_replace(";",",",$userOar) . ")";
Din sökning med INSTR blir väldigt ineffektiv eftersom det blir en sekventiell genomläsning av hela tabellen.
vad gör din kod? :)
Den replacar alla ";" med "," eller? men vad betyder IN (where id in)? är det så fiffigt att IN kan användas till kolumner med "234,23,323,"-struktur? eller den bara kollar om siffran finns i kolumnen :(
c in (21,33,44)
är en förkortning för
c = 21 or c = 33 or c = 44
In kan inte använda på kolumner som innehåller flera värden. Det är den typen av databasdesign som jag fick för mig att du höll på med och den är helt fel. Det finns inga födelar alls.
"Den typen av databasdesign" är den enda jag kan med. Visst jag förstår att den inte är optimal och helt ärligt talat så fungerar det inte speciellt bra. Med ökande besökarantal skulle det nog vara smart att designa om.
Problemet är att SQL-sattserna som skulle behövas är utöver min kompetens. Du har hjälpt mig med någon innan Lars G när jag hade det på det sättet men det tar alldeles för långt tid att ställa frågor här på webforum.
Vad krävs det för att du, Lars G, ska hjälpa mig med databasdesignen på en högre kommunikationsnivå som t.ex. E-mail, ICQ?