Avatar billede phil_a Nybegynder
14. september 2004 - 21:50 Der er 21 kommentarer

søge i mysql

okay jeg har et problem

jeg har en nyhedstabel og vil gerne finde alle de nyheder hvor eet bestemt ord indgår i. Hvordan gør man det.

fx. vil jeg gerne finde alle "james bond" nyheder og derfor finde alle nyhedsartikler hvor "james bond" er.

er det noget med mysql-funktioner search() og against()  ?? er forvirret
Avatar billede detox Nybegynder
14. september 2004 - 21:56 #1
$search = 'james bond';

SELECT * FROM tabel WHERE nyhed LIKE ' %$search% '
Avatar billede detox Nybegynder
14. september 2004 - 21:58 #2
Sorry:

SELECT * FROM tabel WHERE nyhed LIKE '% $search %'
Avatar billede detox Nybegynder
14. september 2004 - 22:02 #3
Du kan selvfølgelig osse bruge fulltext søgning, men så skal du lave et fulltext index på dit felt med nyheder:

SELECT * FROM tabel WHERE MATCH (nyhed) AGAINST ('$search')
Avatar billede phil_a Nybegynder
14. september 2004 - 22:06 #4
hvad betyder fulltext index?
Avatar billede phil_a Nybegynder
14. september 2004 - 22:07 #5
og er der nogen fordele ved det end ved den med like
Avatar billede detox Nybegynder
14. september 2004 - 22:12 #6
fulltext index er et index du kan lave på et felt, som gør det muligt at lave fulltext søgninger (som eksemplet). Jeg tror metoden med LIKE er at foretrække i langt de fleste tilfælde.
Avatar billede detox Nybegynder
14. september 2004 - 22:15 #7
En fordel ved fulltext metoden er at resultaterne bliver sorteret efter relevans.
Avatar billede phil_a Nybegynder
14. september 2004 - 22:21 #8
okay næste spørgsmål - jeg har 3 søgeord som er mit udgangspunkt når jeg skal finde nyheder. hvordan er koden så, for denne virker ikke....

select * from nyhed where nyhed like '% $søgeord1%' and like '%$søgeord2%' and like '%$søgeord3%';
Avatar billede detox Nybegynder
14. september 2004 - 22:24 #9
Hvis alle 3 ord skal være i teksten:

select * from nyhed where nyhed like '%$søgeord1%' and nyhed like '%$søgeord2%' and nyhed like '%$søgeord3%'

Hvis blot et af ordene skal forefindes, så brug or istdet for and.
Avatar billede phil_a Nybegynder
14. september 2004 - 22:27 #10
nej det skal blot være et af de 3 søgeord - sorry
Avatar billede phil_a Nybegynder
14. september 2004 - 22:38 #11
hvad gør jeg så ?
Avatar billede detox Nybegynder
14. september 2004 - 22:40 #12
select * from nyhed where nyhed like '% $søgeord1 %' or nyhed like '% $søgeord2 %' or nyhed like '% $søgeord3 %'
Avatar billede detox Nybegynder
14. september 2004 - 22:46 #13
Eller:

select * from nyhed where nyhed like '%$søgeord1%' or nyhed like '%$søgeord2%' or nyhed like '%$søgeord3%'
Avatar billede phil_a Nybegynder
14. september 2004 - 23:14 #14
har et sidste spørgsmål...
hvordan henter man alle nyheder fra en tabel undtagen en specifik?
Avatar billede detox Nybegynder
14. september 2004 - 23:41 #15
Det kommer an på hvilken nyhed du ikke vil hente. Præciser.
Avatar billede detox Nybegynder
14. september 2004 - 23:59 #16
Hvis du mener nyheder hvor et søgeord IKKE findes:

select * from nyhed where nyhed not like '%$søgeord%'
Avatar billede phil_a Nybegynder
15. september 2004 - 07:39 #17
nej jeg tænkte på at tage alle nyheder ud af tabellen undtagen een, som har f.eks. idnummer=2
hvordan gør man det???
Avatar billede detox Nybegynder
15. september 2004 - 09:30 #18
select * from nyhed where id != 2
Avatar billede phil_a Nybegynder
15. september 2004 - 19:56 #19
hvorfor er denne kode så forkert??

select id,overskrift from nyhed where nyhed like '%$emneord[0]%' or nyhed like '%$emneord[1]%' or nyhed

like '%$emneord[2]%' and id!=5
Avatar billede phil_a Nybegynder
15. september 2004 - 20:00 #20
ahh fandt ud af det
select id,overskrift from nyhed where id!=$id and (nyhed like '%$emneord[0]%' or nyhed like

'%$emneord[1]%' or nyhed like '%$emneord[2]%')
Avatar billede detox Nybegynder
22. september 2004 - 10:57 #21
Så må du hellere lige få et svar, så du kan få lukket.
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

IT-JOB