Avatar billede lsolesen Nybegynder
05. august 2003 - 22:51 Der er 23 kommentarer og
1 løsning

Tælle antal forekomster i sql

Hvordan tæller man hvor mange gange et givent ord bliver fundet i en mysql-database på en søgning?

Skal bruges på www.vih.dk/soeg.php
Avatar billede erikjacobsen Ekspert
05. august 2003 - 23:00 #1
select count(*) as antal where dittekstfelt like '%krumme agurker%'

Sådan ??
Avatar billede arne_v Ekspert
05. august 2003 - 23:01 #2
erik>

Hvad med en FROM ?
Avatar billede erikjacobsen Ekspert
05. august 2003 - 23:02 #3
Nu er jeg ikke specielt from. Hvad med dig... :)

Men spørgeren har allerede "Antal fund: 0" - hvad er dit spørgsmål egentlig?
Avatar billede lsolesen Nybegynder
06. august 2003 - 12:56 #4
Genformulerer lige spørgsmålet :)

Den antal fund jeg har er bare på antal rækker jeg får ud. Jeg vil vide, hvor mange forekomster der er i den enkelte række, så jeg kan lave en sortering efter relevans.
Avatar billede erikjacobsen Ekspert
06. august 2003 - 18:26 #5
Du har vel ikke mulighed for at bruge
http://www.mysql.com/documentation/mysql/bychapter/manual_Reference.html#Fulltext_Search
for der får du umiddelbart en relevans.
Avatar billede lsolesen Nybegynder
06. august 2003 - 20:21 #6
Det tror jeg faktisk at jeg har, men jeg kan ikke få det til at virke helt:

SELECT *, MATCH (titel,keywords,description,tekststreng) AGAINST ('vejle') FROM soeg;

Ovenstående søgning giver fx relevans = 0 i en søgning, hvor vejle måske går igen 12 gange.

Her er et dump af min database:

CREATE TABLE soeg (
  id int(11) NOT NULL auto_increment,
  dato date NOT NULL default '0000-00-00',
  titel varchar(255) NOT NULL default '',
  keywords text NOT NULL,
  description text NOT NULL,
  tekststreng text NOT NULL,
  link varchar(255) NOT NULL default '',
  PRIMARY KEY  (id),
  FULLTEXT KEY titel (titel,keywords,description,tekststreng)
) TYPE=MyISAM;

#
# Data dump for tabellen `soeg`
#

INSERT INTO soeg VALUES (1, '2003-08-05', 'Vejle Idrætshøjskole - en oplevelse for livet', 'Vejle, Idrætshøjskoler, jyske, idrætsskole, idætshøjskole, højskolekursus, højskolekurser, instruktøruddannelse, lederuddannelse, træneruddannelse', 'Vejle Idrætshøjskole tilbyder forskellige højskolekurser. Vi tilbyder træner-/lederuddannelse i fodbold, håndbold, badminton, aerobic, volleyball, basketball. Mange andre idrætsfag og kulturfag.', 'Vejle Idrætshøjskole - en oplevelse for livet\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n    \r\n\r\n\r\n\r\n\r\n\r\n    \r\n    \r\n        \r\n                | Værd at vide\r\n                | Lange kurser\r\n                | Korte kurser\r\n                | Sidste nyt\r\n                | Dialog\r\n                | Faciliteter\r\n                | Lærere\r\n                | Tidligere elever\r\n                | Bestil og tilmeld    \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nVelkommen til Vejle Idrætshøjskole\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n    Skyd en genvej              \r\n    \r\n          Genvej...\r\nFotoalbumDagbogFAQElevchatÅrsskrift          \r\n\r\n\r\n\r\n\r\n      Velkommen. Vi vil så gerne fortælle om de lange \r\n              og korte højskolekurser, vi tilbyder. \r\n              Inden du vælger os, kan du også læse om vores \r\n              dygtige lærere og gode faciliteter, \r\n              og vi er næsten lige så tilfredse med vores højskoleophold, \r\n              som eleverne og kursisterne er. \r\n      Vi glæder os til at se dig i Vejle eller til at svare på \r\n        dine spørgsmål. Brug vores muligheder under dialog.\r\n\r\n  \r\n  \r\n  \r\nTag på højskole...\r\n            \r\n            Lange kurser\r\n                Bliv dygtigere som udøver og som træner, få masser af muligheder og hav det sjovt.\r\n                  \r\n                  \r\n            Korte kurser\r\n                Mød højskolen på fx et familiekursus, golfkursus eller andre voksenkurser.\r\n                  \r\n                  \r\n            Rejselinien\r\n                Rejs med til Afrika i 4 måneder efter grundig forberedelse på højskolen.\r\n                  \r\n                  \r\n            Dialog\r\n                Klik dig ind her og stil det spørgsmål, du brænder efter at få svar på!\r\n                  \r\n                  Se det med dine egne øjne...\r\n            \r\n            Rundvisning\r\n                Højskolelivet skal opleves. Tag en rundvisning.\r\n                  \r\n                  Mere end højskole...\r\n            \r\n            Kursuscenter\r\n                Få ro til at arbejde i et spændende miljø med alle moderne kursusfaciliteter.\r\n                  \r\n                  \r\n    Svenska | Norsk \r\n      | English \r\n    Næste kursus:18 ugers efterårsskole starter 17-08-2003\r\n            Du vælger to hovedfag og et bifag, og derudover møder du en idrætslig mangfoldighed, når vi prøver mange andre forskellige idrætsgrene. NyhederAdventuretur03-08-2003: Efterårsholdet 2003 kan se frem til en rigtig spændende tur...Rundvisning03-08-2003: Vi får hver dag mange henvendelser på brochurer og mange...Oprydning i fotoalbummet19-07-2003: Der er ryddet op i fotoalbummet, og funktionaliteten er blevet...Beretninger fra rejselinien10-07-2003: Rejselinien 2002-03 er hjemme igen, og de har travlt med...Søg om elevstøtte07-07-2003: Mulighederne for individuel elevstøtte er rigtig gode på Vejle Idrætshøjskole....\r\n\r\n\r\n\r\nNyhedsbrev\r\nSkriv din e-mail og få nyhederne fra Vejle Idrætshøjskole.\r\n\r\n E-mail:  \r\n\r\n \r\n\r\n\r\n\r\n\r\n    \r\n  \r\n\r\n\r\n\r\n  \r\n    \r\n    \r\n    \r\n      \r\n      anbefal siden ? stil dit spørgsmål \r\n    [til toppen]\r\n  \r\n\r\n \r\n    Copyright © \r\n    Vejle Idrætshøjskole \r\n    \r\n        :: Indholdsfortegnelse \r\n        :: Sitemap\r\n    \r\n  Udskrevet fra www.vih.dk/index.php den 05-08-2003Senest opdateret 05-08-2003', '/index.php');
Avatar billede lsolesen Nybegynder
06. august 2003 - 20:22 #7
... og det er ikke fordi vejle er med lille - har også prøvet med stort :)
Avatar billede erikjacobsen Ekspert
06. august 2003 - 21:59 #8
Ok, jeg burde prøve dit eksempel, men har ikke lige tid. Der står dog noget i
manualen, som teoretisk kunne forklare dit problem:

"...a word that is present in many documents will have lower weight (and may even have a zero weight)"
Avatar billede lsolesen Nybegynder
07. august 2003 - 09:44 #9
erikjacobsen > Ja, men jeg har jo som du ser kun indtastet en række endnu!
Avatar billede erikjacobsen Ekspert
07. august 2003 - 09:46 #10
Ja, nemlig, så er ordet vejle med mange gang i alle rækker (dvs. kun den
samme), og kan få vægt 0 - som jeg læser det. Prøv med et større
og mere realistisk eksempel.
Avatar billede lsolesen Nybegynder
07. august 2003 - 10:06 #11
Jeg har forsøgt at søge kun i titel, hvor der står Vejle en gang, og den returnerer igen 0: 
SELECT * ,
MATCH (
titel
)
AGAINST (
'vejle'
)
FROM soeg LIMIT 0, 30
Avatar billede lsolesen Nybegynder
07. august 2003 - 10:08 #12
Har lige nu ændret lidt på strukturen i databasen:

CREATE TABLE soeg (
  id int(11) NOT NULL auto_increment,
  dato date NOT NULL default '0000-00-00',
  titel varchar(255) NOT NULL default '',
  keywords text NOT NULL,
  description text NOT NULL,
  tekststreng text NOT NULL,
  link varchar(255) NOT NULL default '',
  PRIMARY KEY  (id),
  FULLTEXT KEY titel (titel),
  FULLTEXT KEY keywords (keywords),
  FULLTEXT KEY description (description),
  FULLTEXT KEY tekststreng (tekststreng)
) TYPE=MyISAM;
Avatar billede lsolesen Nybegynder
07. august 2003 - 14:48 #13
Jeg har fået noget til at virke nu, men det skulle vel ikke være muligt at få en søgning der hedder +økonomi +banan til faktisk at returnere noget, når nu banan ikke findes :) Eller tager jeg fejl?

Kig på www.vih.dk/soeg.php
Avatar billede erikjacobsen Ekspert
07. august 2003 - 14:57 #14
Ja, du kan søge på
  kontaktinformation
  gallerier

men ikke
  vejle

måske fordi det opfattes som et ligegyldigt ord, da det står i alle
(vitsnok) poster.

Hvad mener du med Banan?
Avatar billede lsolesen Nybegynder
07. august 2003 - 15:13 #15
Ja, det er rigtigt. Men hvis jeg laver en søgning, som hedder:

+banan +økonomi

burde søgning ifølge dokumentationen, du smed et link til, ikke returnere noget for så SKAL ordet være til stede i søgningen.
Avatar billede lsolesen Nybegynder
07. august 2003 - 15:16 #16
Hvad er i øvrigt fortolkningen af det der relevans-tal. Det er ikke så brugervenligt at få slynget 2.5 ud :)
Avatar billede erikjacobsen Ekspert
07. august 2003 - 15:17 #17
Det skal du heller ikke skrive ud, men større tal, mere relevans.

Er du sikker på dokumentationen passer til din version af mysql?
Avatar billede lsolesen Nybegynder
07. august 2003 - 15:17 #18
15:13:37 fortsat, og den returnerer det samme, som hvis jeg bare søgte økonomi
Avatar billede lsolesen Nybegynder
07. august 2003 - 15:22 #19
Aha overså, at + bruges i boolean mode :o)
Avatar billede lsolesen Nybegynder
07. august 2003 - 20:30 #20
Det er en lidt striks måde at søge på, synes jeg. Hvis jeg fx søger på pris får jeg kun et hit, men søger jeg på priser får jeg to hits. Kan man gøre den knap så striks ved at give brugeren mulighed for at trukere?
Avatar billede erikjacobsen Ekspert
07. august 2003 - 20:48 #21
Ikke så vidt jeg kan se
Avatar billede lsolesen Nybegynder
10. juni 2006 - 17:38 #22
Svar venligst.
Avatar billede erikjacobsen Ekspert
10. juni 2006 - 20:30 #23
Jeg samler slet ikke på point, tak.
Avatar billede lsolesen Nybegynder
12. juni 2006 - 08:13 #24
Så lukker jeg og tager dem selv :D
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
Computerworld tilbyder specialiserede kurser i database-management

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