19. februar 2005 - 18:05Der er
34 kommentarer og 1 løsning
mysql / php spg med LIKE
Jeg har en kolonne i min tabel hvor der f.eks. står
45 60 23
dette er størrelser. Jeg vil gerne kunne finde f.eks. 45. Min query nu siger "WHERE tabel.kolonne LIKE '%$vaerdi%'" men hvis jeg f.eks. søger på 2 finder jeg jo 23.. det er ikke meningen.
Der bliver investeret massivt i AI. Teknologien er mere tilgængelig end nogensinde, og ambitionerne er høje. Alligevel oplever mange virksomheder, at resultaterne udebliver.
"WHERE tabel.kolonne LIKE '%$vaerdi'" ->Starter på det du söger efter "WHERE tabel.kolonne LIKE '$vaerdi%'" ->Slutter på det du söger efter "WHERE tabel.kolonne LIKE '%$vaerdi%'" ->Har det du söger efter i sig
Men måske skulle du overveje en bedre måde at gemme dine data på.
Synes godt om
Slettet bruger
19. februar 2005 - 19:15#12
jeg tror du har fat i noget detox..
det er fordi jeg har en tabel med cykler, og det ville være spild at lave 3 rækker med cykler, hvor den eneste forskel er størrelsen.. derfor gør jeg det sådan
Nu ved jeg ikke hvor mange cykler det drejer sig om, men REGEXP er forholdsvis langsommelig.
Synes godt om
Slettet bruger
19. februar 2005 - 19:39#14
det drejer sig om rigtig mange.. det er ikke en mulighed at lave en række for hver.. noget andet jeg har tænkt på er, at når man i en input boks skriver "60 54 26" kan det så lade sig gøre, at få den til at ændre det til "\'60\' \'54\' \'´26\'" ?
altså ereg_replace("alle tal der står for sig selv", "\'Alle tal der står for sig selv\'", $var)
?
Synes godt om
Slettet bruger
19. februar 2005 - 19:48#15
og så naturligvis sætte det ind i tabellen.. det er mere om man kan finde tal der er "omkranset" af mellemrum, og så sætter \' på dem
Eller du kunne have en størrelse i hver række. Det vil alligevel være mere effektivt, selvom der er flere rækker. Der er jo plads til rigtigt mange rækker i en tabel.
Synes godt om
Slettet bruger
19. februar 2005 - 21:13#22
jaja, men hver række skal jo alligevel have flere størrelser før det kan bruges... ellers kunne do jo lige komme med et eksempel.. hvis du gider :P
Det jeg mener er du har cykelnavnet (og evt. andre data) i en tabel:
id | navn 14 | centurion
i en anden tabel kan du så have størrelser:
id | str 14 | 45 14 | 60 14 | 23
men hvis jeg har misforstået det og der er 3 størrelser til at beskrive hver cykel, kan du jo lave en kolonne til hver. Jeg tænker bare du kan få problemer med hastigheden på forespørgsler, hvis der er mange cykler og mange brugere.
Synes godt om
Slettet bruger
19. februar 2005 - 21:46#24
idet jeg har mange cykler vil jeg næsten tro at det der er sværere.. jeg tror det rigtige er den preg_replace, tak for de mange inputs detox. Smid svar :P
Ved du hvor man kan se hvad "/\b(\w+)\b/" og "/(\w+)/" gør?, jeg kan ikke finde noget på php.net
Synes godt om
Slettet bruger
12. marts 2005 - 22:45#30
Detox, jeg håber stadig du er derude et sted, og er villig til at hjælpe. Der er 50 point i det for dig :)
Jeg har valgt at have værdierne i databasen som f.eks. "51/25/6/90/1", og vil gerne bruge regexp i min mysql query. Jeg har selv lavet noget, der egentlig burde virke (synes jeg :o)), her er det:
det er rimelig smart vil jeg da gerne give dig ret i :o)
Synes godt om
Ny brugerNybegynder
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.