ntec Skrevet 2. april 2006 Del Skrevet 2. april 2006 Man bruker SELECT * FROM users WHERE brukernavn = whatever for å finne en bruker med brukernavnet whatever. Hvordan må den være for å finne brukernavn som INNEHOLDER whatever? Lenke til kommentar
Ueland Skrevet 2. april 2006 Del Skrevet 2. april 2006 SELECT (felter) FROM (tabell) WHERE felt LIKE '%query%' Den gjør susen for å finne alt som inneholder "query" et eller annet sted i feltet. Lenke til kommentar
ntec Skrevet 2. april 2006 Forfatter Del Skrevet 2. april 2006 SELECT (felter) FROM (tabell) WHERE felt LIKE '%query%' Den gjør susen for å finne alt som inneholder "query" et eller annet sted i feltet. 5857473[/snapback] ah tusen takk hyperraskt svar, dette funket flott:D Lenke til kommentar
simenss Skrevet 2. april 2006 Del Skrevet 2. april 2006 Hva er forskjellen på LIKE og REGEXP? Lenke til kommentar
CruellaDeVille Skrevet 2. april 2006 Del Skrevet 2. april 2006 Hva er forskjellen på LIKE og REGEXP? 5857546[/snapback] Nå har jeg googlet på mysql.org, og finner ikke noe i mysql som heter regexpr. LIKE er en mysql funksjon, noe tilsvarende regexpressions finner jeg ikke. Mulig jeg er på jorde, til og med på feil jorde. Lenke til kommentar
Ueland Skrevet 2. april 2006 Del Skrevet 2. april 2006 REGEXP er regualr expressions (som støttes av MySQL) som gjør at du kan gi MySQL litt mer avanserte søkekriterier, men dertil er det nok og tregere. Lenke til kommentar
???????? Skrevet 2. april 2006 Del Skrevet 2. april 2006 REGEXP (eller RLIKE for de som foretrekker det) er som Ueland sier en mulighet for å bruke Regular Expressions ved søk i en database. Siden LIKE og REGEXP er to forskjellige funksjoner så er det kanskje ikke helt korrekt å sammenligne de direkte, men gjør man nå det så vil man ofte oppdage at REGEXP ikke er spesielt tregere enn. Nå har ikke jeg testet forskjellen mellom disse under mange forskjellige forhold, men i hovedsak vil vel LIKE faktisk ha en listen hastighetsfordel mot REGEXP. Så om du kun trenger LIKE så bruk det. Lenke til kommentar
ntec Skrevet 2. april 2006 Forfatter Del Skrevet 2. april 2006 hvis jeg skal lete i to tabeller, finnes det en løsning for å søke i begge tabellene uten å måtte sette opp to query som nedenfor: SELECT (felter) FROM (tabell) WHERE felt1 LIKE '%query%' SELECT (felter) FROM (tabell) WHERE felt2 LIKE '%query%' Lenke til kommentar
Cucum(r) Skrevet 3. april 2006 Del Skrevet 3. april 2006 (endret) Det bør vel òg seiast at fulltext search er raskare enn LIKE, om du har mykje data i tabellane dine. Eit lite eksempel på korleis du kan søke gjennom fleire tabeller: SELECT *, MATCH(field) AGAINST('%$search_word%') OR MATCH(text) AGAINST('%$search_word%') AS field_1 FROM tableA LEFT JOIN tableB ON tableA.tableA_id = tableB.tableB_id WHERE MATCH(field) AGAINST('%$search_word%') OR MATCH(text) AGAINST('%$search_word%') Endret 3. april 2006 av Henrik Lied Lenke til kommentar
Ueland Skrevet 3. april 2006 Del Skrevet 3. april 2006 hvis jeg skal lete i to tabeller, finnes det en løsning for å søke i begge tabellene uten å måtte sette opp to query som nedenfor: SELECT (felter) FROM (tabell) WHERE felt1 LIKE '%query%' SELECT (felter) FROM (tabell) WHERE felt2 LIKE '%query%' 5857832[/snapback] Det er mulig ja. SELECT a.felt, a.felt2, b.felt, b.felt2 FROM felt1 a, felt2 b WHERE a.felt LIKE '%query%' AND b.felt LIKT 'query'%. Du vil kansje og legge til en DISTINCT for å unngå at du får samme rad flere ganger. "SELECT DISTINCT..." Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå