Gå til innhold

sql query, select ord som inneholder


Anbefalte innlegg

Videoannonse
Annonse
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

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

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

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 av Henrik Lied
Lenke til kommentar
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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...