webForumDet fria alternativet

Instr i mySQL SQL

Databaser & SQLur Databashanterare & SQL

6 svar · 292 visningar · startad av nill

Medlem sedan okt. 2001387 inlägg
Frågan#1

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å?

Medlem sedan dec. 200012 464 inlägg
#2

Gör om datamodellen. Det kommer aldrig att bli bra. Desto längre du väntar desto mer jobb blir det.

Medlem sedan okt. 2001387 inlägg
#3

inte?
det gick så här ivarjefall:
[KOD]
SELECT * FROM oar WHERE INSTR('".$userOar."', ID) > 0"

Medlem sedan dec. 200012 464 inlägg
#4

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.

Medlem sedan okt. 2001387 inlägg
#5

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 :(

Medlem sedan dec. 200012 464 inlägg
#6
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.

Medlem sedan okt. 2001387 inlägg
#7

"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?

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