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
Annonceindlæg fra HP
14. september 2004 - 21:56
#1
$search = 'james bond'; SELECT * FROM tabel WHERE nyhed LIKE ' %$search% '
14. september 2004 - 21:58
#2
Sorry: SELECT * FROM tabel WHERE nyhed LIKE '% $search %'
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')
14. september 2004 - 22:06
#4
hvad betyder fulltext index?
14. september 2004 - 22:07
#5
og er der nogen fordele ved det end ved den med like
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.
14. september 2004 - 22:15
#7
En fordel ved fulltext metoden er at resultaterne bliver sorteret efter relevans.
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%';
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.
14. september 2004 - 22:27
#10
nej det skal blot være et af de 3 søgeord - sorry
14. september 2004 - 22:38
#11
hvad gør jeg så ?
14. september 2004 - 22:40
#12
select * from nyhed where nyhed like '% $søgeord1 %' or nyhed like '% $søgeord2 %' or nyhed like '% $søgeord3 %'
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%'
14. september 2004 - 23:14
#14
har et sidste spørgsmål... hvordan henter man alle nyheder fra en tabel undtagen en specifik?
14. september 2004 - 23:41
#15
Det kommer an på hvilken nyhed du ikke vil hente. Præciser.
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%'
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???
15. september 2004 - 09:30
#18
select * from nyhed where id != 2
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
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]%')
22. september 2004 - 10:57
#21
Så må du hellere lige få et svar, så du kan få lukket.
Vi tilbyder markedets bedste kurser inden for webudvikling