Wildcard operator * bij MATCH AGAINST

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

PHP Freak

PHP Freak

23/08/2009 17:01:00
Quote Anchor link
Hallo allemaal!

Ik gebruik de volgende MySQL query:
SELECT * FROM user WHERE MATCH (username, name) AGAINST ('*" . mysql_real_escape_string($zoekterm) . "*' IN BOOLEAN MODE)

Ik krijg echter niet het gewenste resultaat. Als ik bijvoorbeeld zoek op 'obin', dan krijg ik niet als resultaat een rij waar username gelijk is aan Robin. Zoek ik op Robi, dan krijg ik deze wel... het lijkt er dus op dat de wildcard operator voor de zoekterm niets doet...
heeft iemand misschien enig idee wat ik hier aan kan doen?

Alvast bedankt!
 
PHP hulp

PHP hulp

22/11/2024 12:33:04
 
Ivo K

Ivo K

23/08/2009 19:35:00
Quote Anchor link
Ikzelf gebruik nooit MATCH AGAINST. Ik zou de query zo opbouwen;

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php

'SELECT
  *
 FROM
  user
 WHERE
  ( username = "%'
. mysql_real_escape_string ( $zoekterm ) . '%" )
 OR
  ( name = "%'
. mysql_real_escape_string ( $zoekterm ) . '%" )' ;

?>


Ik weet niet of je er iets aan hebt, maar succes ermee.

Edit:

@Santhe, o ja, ik denk dat ik niet helemaal wakker was midden op de dag :-)
Gewijzigd op 01/01/1970 01:00:00 door Ivo K
 
- SanThe -

- SanThe -

23/08/2009 20:22:00
Quote Anchor link
@Ivo: Bedoel jij niet LIKE
 
Www JdeRuijterNL

www JdeRuijterNL

23/08/2009 21:24:00
Quote Anchor link
MATCH AGAINST is veel efficienter.
 
Felix b

Felix b

24/08/2009 02:56:00
Quote Anchor link
De * wildcard kan alleen op het einde van een word gebruikt worden niet in het begin
Gewijzigd op 01/01/1970 01:00:00 door Felix b
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.