Avatar billede nightcoder Nybegynder
01. maj 2008 - 16:52 Der er 7 kommentarer og
2 løsninger

query med IN

Denne bid af en query er taget ud af en sammenhæng. Mit problem er at min "IN" kun returenerer noget hvis indholdet starter med id´et.

Altså hvis id = 8

Så hiver den indhold ud hvis ids = 8,9,3

men ikke hvis den er = 9,8,3



SELECT id FROM table WHERE id IN (SELECT ids FROM table2 WHERE id = s.id)
Avatar billede nielle Nybegynder
02. maj 2008 - 08:12 #1
SQL skal være 100 % ligeglad med rækkefølgen - faktisk er det slet ikke garanteret at tingene kommer i den samme rækkefølge fra gang til gang.

Det er lidt svært at bedømme hvad det er der går galt da vi mangler sammenhængen, men det er nok ikke SQL'en som fejler.
Avatar billede nightcoder Nybegynder
02. maj 2008 - 11:25 #2
Kunne det have noget at gøre med at ids rent faktisk indeholder en kommasepareret streng, altså f.eks. 1,6,7,3. Altså finder den i det inderste "SELECT" ikke flere resultater som kan tjekkes op på, men altid kun et resultat som i feltet ligger som en streng?
Avatar billede dkfire Nybegynder
02. maj 2008 - 12:00 #3
Det er en rigtig dårlig ide at have flere værdier i samme felt, i dit tilfælde som 1,2,3. Du burde lærer lidt om at normalisere din database.
Avatar billede nightcoder Nybegynder
02. maj 2008 - 12:16 #4
dkfire > Men bortset fra det har du en løsning, hvis der findes en?
Avatar billede dkfire Nybegynder
02. maj 2008 - 12:20 #5
Nej ikke lige med den opbygning som du har.
En anden ting, hvor kommer s.id fra ??
Avatar billede nielle Nybegynder
03. maj 2008 - 07:02 #6
02/05-2008 11:25:51> Ja. IN virker kun hvis din indre SELECT returnere et antal rækker som hver indeholder netop ét id.

Jeg er enig med dkfire om at det er en dårlig løsning, og jeg vil råde dig til at lave din database struktur om. Heller bruge tid på at rette op på strukturen her og nu end at bruge tid på at lave dårligt-performende SQL-kode til at kompensere for en uhensigtsmæssig databasestruktur.
Avatar billede nightcoder Nybegynder
05. maj 2008 - 18:02 #7
Har lavet skidtet om så det spiller. Smid nogle svar.
Avatar billede nielle Nybegynder
06. maj 2008 - 17:55 #8
Svar :^)
Avatar billede dkfire Nybegynder
06. maj 2008 - 23:07 #9
Svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester