[SQL] Onderscheid tussen 2 where clauses?

Pagina: 1
Acties:

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 24-05 14:53

NMe

Quia Ego Sic Dico.

Topicstarter
Ik heb een forum gemaakt met daarop een zoekfunctie. Deze zoekfunctie moet zowel in topictitels als in de berichten zelf kijken of een bepaald woorde erin voorkomt. Ik doe dat met onderstaande query:
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT b.onderwerp_id, o.titel, b.plaatsingstijd, b.gebruiker_id, b.naam, (
   SELECT COUNT(*)
   FROM bericht
   WHERE onderwerp_id = o.id
) AS aantal
FROM onderwerp o INNER JOIN bericht b
ON b.onderwerp_id = o.id
WHERE (
   LCASE(b.post) LIKE '%test%'
   OR LCASE(o.titel) LIKE '%test%'
) AND b.plaatsingstijd IN (
   SELECT MAX(plaatsingstijd)
   FROM bericht
   WHERE onderwerp_id = o.id
) ORDER BY plaatsingstijd DESC

Tot zover dacht ik dat hij werkte, en ik leverde het forum dan ook af bij de baas. Toen deze echter ging testen, bleek dat de query goed werkte als ik op woorden uit topictitels zoek, maar niet als ik op woorden uit de posts zoek.

bericht.post is van het type memo in een Access 2000 database, onderwerp.titel is van het type tekst. Kan het hiermee te maken hebben dat die like niet werkt? Zo ja, hoe kan ik hier dan omheen werken?

Op Google vind ik hierover niets, de enige link die eruit ziet alsof ik er wat aan heb is naar een betaalforum, en hier in de search vind ik er zelfs helemaal niks over. :)

Als je wil zien wat het probleem is, hier staat de betreffende pagina: *click*
Er staat één onderwerp in, namelijk "test forum". In dit onderwerp komt onder andere het woord "deur" voor. Zoek je op "test", dan krijg je netjes een link naar het forum terug met die query, zoek je op "deur", dan is de recordset leeg.... :X

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 23:36

TeeDee

CQB 241

Je hebt toch wel %test% vervangen met het ingevoerde zoekwoord / variable? :X

[ Voor 12% gewijzigd door TeeDee op 22-06-2004 12:15 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 24-05 14:53

NMe

Quia Ego Sic Dico.

Topicstarter
TeeDee schreef op 22 juni 2004 @ 12:15:
Je hebt toch wel %test% vervangen met het ingevoerde zoekwoord / variable? :X
Uiteraard. :X

Uiteraard ook beide voorkomens van %test%. :P

[ Voor 14% gewijzigd door NMe op 22-06-2004 12:17 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • GlowMouse
  • Registratie: November 2002
  • Niet online
Als ik op 'citeer' zoek kom ik gewoon bij de juiste post uit.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 24-05 14:53

NMe

Quia Ego Sic Dico.

Topicstarter
GlowMouse schreef op 22 juni 2004 @ 12:17:
Als ik op 'citeer' zoek kom ik gewoon bij de juiste post uit.
Argh. :X Hij kijkt natuurlijk alleen in de laatste post door die max. :X Excuus voor het verspillen van jullie tijd. :)

Hmm, gezellig querytje aanpassen, altijd leuk. :Y)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 24-05 14:53

NMe

Quia Ego Sic Dico.

Topicstarter
Voor eventuele geïnteresseerden:
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
SELECT b.onderwerp_id, o.titel, b.plaatsingstijd, b.gebruiker_id, b.naam, (
  SELECT COUNT(*)
  FROM bericht
  WHERE onderwerp_id = o.id
) AS aantal
FROM onderwerp o INNER JOIN bericht b
ON b.onderwerp_id = o.id
WHERE (
  b.onderwerp_id IN (
    SELECT onderwerp_id
    FROM bericht
    WHERE LCASE(post) LIKE '%test%'
  ) OR LCASE(o.titel) LIKE '%test%'
) AND plaatsingstijd IN (
  SELECT MAX(plaatsingstijd)
  FROM bericht
  WHERE onderwerp_id = o.id
) ORDER BY plaatsingstijd DESC

[ Voor 4% gewijzigd door NMe op 22-06-2004 14:22 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1