[MySQL] Search met LIKE Query

Pagina: 1
Acties:

  • RMX
  • Registratie: Augustus 2000
  • Laatst online: 19:38
Voor het intranet ben ik bezig met een zoekmachine voor het algemene gedeelte.
De zoekmachine voor het beveiligde gedeelte is inmiddels klaar en werkt perfect.
Maar nu wilde ik deze uitbreiden naar het algemene gedeelte.
Via $ref weet de zoekmachine in welke afdeling gezocht moet worden.
Als ik nu een query heb ala:
code:
1
2
SELECT id, name, description_small, description_big, sort FROM downloads_files 
WHERE sort = '2' AND name LIKE '%Documentatie%' order by id

Dan werkt dit perfect in PHPMyAdmin en in het script...
Maar als ik nu meer velden toevoeg zoals dit:
code:
1
2
3
SELECT id, name, description_small, description_big, sort FROM downloads_files 
WHERE sort = '2' AND name LIKE '%%' OR description_small LIKE '%%' 
OR description_big LIKE '%%' order by id

Dan krijg ik niks terug uit de database.
Mijn vraag is dus hoe kan ik wel in meerdere velden zoeken?
Doe ik iets fout met die OR statements?
(Neej full text search is helaas geen optie)
Wie kan me op de goede weg helpen ? :*) _/-\o_

  • JayVee
  • Registratie: Mei 2002
  • Laatst online: 14-11-2025

JayVee

shibby++!

Heb je al getest of de query die in pma wel werkt in je app iets oplevert?
Ik weet niet wat
code:
1
LIKE '%%'
hoort de doen. Ik snap echter niet waarom je die overal gebruikt. Of is het de bedoeling dat dat nog vars tussen komen? (neem aan van wel)

ASCII stupid question, get a stupid ANSI!


  • RMX
  • Registratie: Augustus 2000
  • Laatst online: 19:38
Idd, daar staan normaal vars tussen maar als je die leeg laat zou die alles moeten weergeven en zo heb ik ook getest.
Bij eerst query geeft ie alles terug met $ref maar bij de 2de niet :(

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Je moet haakjes gaan gebruiken om de OR's te scheiden van je AND.
Dat je niks terug krijgt is wellicht vanwege NULL values.
NULL LIKE '%%' evalueert naar NULL.

Ik weet niet zeker of dit ook zo is in MySQL, maar bij andere databases iig. wel.

Who is John Galt?


  • RMX
  • Registratie: Augustus 2000
  • Laatst online: 19:38
code:
1
2
3
SELECT id, name, description_small, description_big, sort FROM downloads_files 
WHERE sort = '2' AND (name LIKE '%%') OR (description_small LIKE '%%') 
OR (description_big LIKE '%%') order by id

Ik heb nu deze code maar dit wil nog niet werken.... Een beetje gerommel met de haakjes leverd ook niet veel op...

Misschien iemand nog een idee ?

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

RMX schreef op dinsdag 14 december 2004 @ 10:05:
code:
1
2
3
SELECT id, name, description_small, description_big, sort FROM downloads_files 
WHERE sort = '2' AND (name LIKE '%%') OR (description_small LIKE '%%') 
OR (description_big LIKE '%%') order by id

Ik heb nu deze code maar dit wil nog niet werken.... Een beetje gerommel met de haakjes leverd ook niet veel op...

Misschien iemand nog een idee ?
Je AND en OR's staan nog steeds op hetzelfde niveau.
je bedoelt waarschijnlijk:
code:
1
2
WHERE sort = '2' AND (name LIKE '%%' OR description_small LIKE '%%' 
OR description_big LIKE '%%')

Maar dan heb je de NULL waarden nog niet ondervangen.
Kunnen deze velden leeg zijn?

Who is John Galt?


  • I
  • Registratie: Augustus 2001
  • Laatst online: 14-02 15:01

I

RMX schreef op dinsdag 14 december 2004 @ 10:05:

Ik heb nu deze code maar dit wil nog niet werken.... Een beetje gerommel met de haakjes leverd ook niet veel op...

Misschien iemand nog een idee ?
code:
1
2
3
SELECT id, name, description_small, description_big, sort FROM downloads_files 
WHERE sort = '2' AND (name LIKE '%%' OR description_small LIKE '%%'
OR description_big LIKE '%%') order by id


try dat

edit: te laat

[ Voor 8% gewijzigd door I op 14-12-2004 10:12 ]


  • RMX
  • Registratie: Augustus 2000
  • Laatst online: 19:38
Thnx, Thnx, dit werkt...
Ook handig voor de volgende keer :D
Pagina: 1