|
| select and... Fra : Martin |
Dato : 04-09-01 20:56 |
|
Jeg har flg problem
I min MySQL base har jeg en tabel: navne med fx flg felter:
titel
fornavn
efternavn
Jeg vil gene søge i disse felter, men på en bestemt måde. Titel og
efternavnet skal findes, selvom man kun skriver en stump af ordet i
søgeboksen. MEN fornavnet skal skrives helt, dette er for at undgå at en
søgning på "arne" giver et resultat på "bjarne".
Flg querry: SELECT * FROM navne where titel like '%chef%' and fornavn =
'bent' and efternavn like '%hansen%' skulle jo give fx:
bent hansen, administrationschef
bent johansen, chef
bent hansen, personalechef
men det virker somom man ikke kan blande like og = i en querry, kan det
passe?
Hvis jeg kun bruger like i alle 3 får jeg jo fx bjarne når jeg søger på
arne, vibeke når jeg søger på ib osv.
Hvordan fixer man det, således at nogle felter skal være exakte mens andre
felter kan være en del af ordet i tabellen?
PS. Det hele er bygget ind i en søgeformular i php, hvor også udtrækket
defineres.
Martin Kristensen
moellehuset@post.tele.dk
| |
Jesper Gødvad (04-09-2001)
| Kommentar Fra : Jesper Gødvad |
Dato : 04-09-01 22:44 |
|
"Martin" <moellehuset@post.tele.dk> wrote in message
news:3b95322e$0$294$edfadb0f@dspool01.news.tele.dk...
> Jeg vil gene søge i disse felter, men på en bestemt måde. Titel og
> efternavnet skal findes, selvom man kun skriver en stump af ordet i
> søgeboksen. MEN fornavnet skal skrives helt, dette er for at undgå at en
> søgning på "arne" giver et resultat på "bjarne".
>
> Flg querry: SELECT * FROM navne where titel like '%chef%' and fornavn =
> 'bent' and efternavn like '%hansen%' skulle jo give fx:
> bent hansen, administrationschef
> bent johansen, chef
> bent hansen, personalechef
Så prøv med:
SELECT * FROM navne WHERE titel LIKE '%chef%' AND fornavn LIKE 'bent' AND
efternavn LIKE '%hansen%' ?
Din nuværende forespørgsel returnerer pt. også folk med efternavnet
'Johansen', så du kunne evt. fjerne % wildcarded før parametret.
mvh. jesper
| |
|
|