Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[MySQL] problemen met simpele query

Pagina: 1
Acties:

  • Sjoerd
  • Registratie: December 2003
  • Niet online
Ik ben bezig met een zoek script te maken voor mijn site maar loop vast.
Ik wil in verschillende tabellen zoeken naar een bepaald zoekwoord

Een kleine weergave van de database:

news
id
title
content
date

pages
id
title
content

SQL:
1
2
SELECT * FROM pages p,news n
            WHERE p.content OR n.content like '%zoekwoord%'


Het probleem hierbij is echter dat ik een hoop dubbele rijen krijg, hoe kan ik er met 1 query voor zorgen dat ik toch alle unieke resultaten van de 2 tabellen onder elkaar krijg?

Een join heeft in dit geval weinig nut denk ik aangezien de 2 tabellen totaal geen relatie hebben, het gebruik van DISTINCT(id) of GROUP BY id is ook niet van toepassing aangezien deze 'ambigous' is. ;)

Modelbouw - Alles over modelbouw, van RC tot diorama


  • lennartkocken
  • Registratie: September 2004
  • Laatst online: 18-11 10:50
code:
1
2
SELECT * FROM pages p,news n
            WHERE p.content LIKE '%zoekwoord%' OR n.content LIKE '%zoekwoord%'

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 07:40

Creepy

Tactical Espionage Splatterer

En dan nog krijg je dubbele rijen omdat je gewoon een cartegisch product genereerd van beide tabellen en daar een selectie op los laat.

Als beide tabellen precies hetzelfde zijn en je wilt in beide tabellen op dezelfde manier zoeken, waarom maak je dan niet 1 tabel waarin je 1 extra kolom opneemt die het type (news of page) aangeeft?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
pst.: UNION ;)

[ Voor 12% gewijzigd door bigbeng op 13-05-2008 16:04 ]


  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Waarom proberen mensen altijd het wiel opnieuw uit te vinden?
Voor vrijwel elke programmeertaal zijn al bestaande seach engines beschikbaar.
PHP: http://www.sphider.eu/ en Lucene voor Java, .NET en Ruby.

Beide werken met een spider en ondersteunen complexe zoek opdrachten (o.a. boolean searches, quoted words, etc).

If it isn't broken, fix it until it is..


  • Sjoerd
  • Registratie: December 2003
  • Niet online
SUPER! bedankt dat deed het hem!

select 1
UNION
select 2

Modelbouw - Alles over modelbouw, van RC tot diorama


  • lammert
  • Registratie: Maart 2004
  • Laatst online: 14-11 10:28
Niemand_Anders schreef op dinsdag 13 mei 2008 @ 16:04:
Waarom proberen mensen altijd het wiel opnieuw uit te vinden?
Voor vrijwel elke programmeertaal zijn al bestaande seach engines beschikbaar.
PHP: http://www.sphider.eu/ en Lucene voor Java, .NET en Ruby.

Beide werken met een spider en ondersteunen complexe zoek opdrachten (o.a. boolean searches, quoted words, etc).
Jij denkt dat een search engine implementeren efficiënter is dan een basic SELECT query? 8)7

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 07:40

Creepy

Tactical Espionage Splatterer

Jij denkt dat een basis SELECT query efficienter is dan een search engine op bijv. een forum zoals dit? 8)7

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Creepy schreef op dinsdag 13 mei 2008 @ 16:10:
Jij denkt dat een basis SELECT query efficienter is dan een search engine op bijv. een forum zoals dit? 8)7
ja :)

Leuk man, oneliners :) crap! nu zijn het er twee :+

Maar ff zonder dollen, ik denk dat de suggestie van Niemand_Anders een goede is om over na te denken. Een enkele simpele zoekquery zelf implementeren kan snel uitgroeien tot het zelf bouwen van een search engine.

[ Voor 28% gewijzigd door bigbeng op 13-05-2008 16:18 ]


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 07:40

Creepy

Tactical Espionage Splatterer

Ja? Vertel dat even tegen de devvers hier van het forum dat ze de zoekengine eruit moeten halen en likes moeten gebruiken :P

Tip: een fulltext search over de gehele posts tabel met een LIKE zal altijd de gehele tabel moeten scannen, een goede search engine cached een hoop en doet dit niet.
Met een klein nieuw forum ga je dit verschil niet merken, maar zodra het echt gaat groeien.....

[ Voor 84% gewijzigd door Creepy op 13-05-2008 16:27 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1