Avatar billede bacce.dk Nybegynder
02. november 2005 - 21:20 Der er 20 kommentarer og
1 løsning

søgning i db

hejsa
jeg har en plads i min db hvor der står en masse tal, som er delt op med comma

fek.s 1,4,7,12,15,20,27,31

Jeg skal så lave en søgning hvor den skal finde alle som fek.s har 15 hvordan gør jeg det når mine tal er delt med comma ??
Avatar billede jakobdo Ekspert
02. november 2005 - 21:25 #1
Det er ikke 100% løsning, men noget i stil med: SELECT * FROM tabel WHERE felt LIKE '%15%'
Avatar billede bacce.dk Nybegynder
02. november 2005 - 21:26 #2
Ja den dur ikke hvis du laver den på LIKE '%1%' vil både 12,15 og 31 komme på også...
Avatar billede hmortensen Nybegynder
02. november 2005 - 21:32 #3
Det virker ikke som en hensigtsmæssig måde at gemme dataen på.

Hvis det ikke kan ændres, kan løsningen laves simpelt i php, men vil kræve en del.
Avatar billede jakobdo Ekspert
02. november 2005 - 21:34 #4
Det er netop det som er problemet! :o)
Hvad så med:
SELECT * FROM tabel WHERE felt LIKE '1' OR felt LIKE '%,1' OR felt LIKE '%,1,%' OR felt LIKE '1,%'
Avatar billede nielle Nybegynder
02. november 2005 - 21:39 #5
... felt = '1' ...

Det er overkill at bruge LIKE for netop det særtilfælde
Avatar billede jakobdo Ekspert
02. november 2005 - 21:41 #6
Sorry! :o)
Avatar billede bacce.dk Nybegynder
02. november 2005 - 21:41 #7
grunden til at dataen ligger sådan er at jeg i en shop opretter en vare, denne vare skal tildeles en eller flere kategorier... disse kategorier smider jeg så i db ud fra kategoriens id. og hvis jeg har flere end en kommer det til at se sådan ud i db.
Avatar billede pidgeot Nybegynder
02. november 2005 - 21:42 #8
Man kunne lave den så der altid er et komma før og efter et tal, og så bruge LIKE '%,(værdi),%'.
Avatar billede bacce.dk Nybegynder
02. november 2005 - 21:43 #9
felt = '1' vil da ikke retunere noget hvis db fek.s ser sådan her ud. 1,2,3
da den jo tager alt hvad der står som resultat
Avatar billede bacce.dk Nybegynder
02. november 2005 - 21:45 #10
mon så ikke det skulle være EFTER et tal =
ellers ville den godtage 1 12 og 15 ved søgning på 1.
Avatar billede bacce.dk Nybegynder
02. november 2005 - 21:47 #11
spørgsmålet er om man måske kan trække alle talne ud med en simpel forespørgsel og så måske splitte alle tal ad igen ved at fjerne commma igen ?? med andre ord. omvendt af den måde de er smidt derind... ?
Avatar billede jakobdo Ekspert
02. november 2005 - 21:48 #12
Har du testet:
SELECT * FROM tabel WHERE felt = '1' OR felt LIKE '%,1' OR felt LIKE '%,1,%' OR felt LIKE '1,%'
Avatar billede nielle Nybegynder
02. november 2005 - 22:00 #13
02/11-2005 21:43:35> Deltesten ... felt = '1' ... tager højde for det tilfælde hvor at der kun står '1' i dit felt.
Avatar billede bacce.dk Nybegynder
06. november 2005 - 14:09 #14
Jakobdo>> umidelbart ser det meget rigigt ud, men tror ikke den er 100% sikker

Fek.s tror jeg at hvis man fek.s søger på 7 vil den blive godkendt hvis der står 17 ved OR felt LIKE '7,%'

Meen vil gerne godkende den hvis du smider et svar... vi skal have lukket disse gamle spm's
Avatar billede pidgeot Nybegynder
06. november 2005 - 14:25 #15
LIKE '7,%' vil ikke genkende 17, da den kræver den skal STARTE med 7. Det gør 17 jo ikke ;)
Avatar billede bacce.dk Nybegynder
06. november 2005 - 15:35 #16
ja sorry det er rigtigt der er jo ikke % forand 7....

Så er den måske 100 % alligevæl...

Nå men kommer du med et svar jeg kan acceptere ???
Avatar billede jakobdo Ekspert
06. november 2005 - 17:11 #17
Jeg vil gerne komme med et svar, men har du testet om det rent faktisk virker?
(det virker nemlig ikke sådan)
Avatar billede bacce.dk Nybegynder
23. november 2005 - 16:26 #18
ingen svar ? lukkes, men tak for hjælpen
Avatar billede nielle Nybegynder
23. november 2005 - 17:22 #19
Hvad med at svare på jakobdo's spørgsmål?
Avatar billede jakobdo Ekspert
23. november 2005 - 19:11 #20
Det var måske en for stor mundfuld! :o)
Avatar billede bacce.dk Nybegynder
26. november 2005 - 13:59 #21
hmm nej det blev aldrig testet, men det kommer det da til.
Der var bare en del andre ting som jeg blev nød til at løse først... Syntes det ser rigtig ud, så mon ikke det skulle virke ???

Havde slet ikke set Jakobdo's spørgsmål... Sorry
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