[MYSQL] recherche avec LIKE et tri selon la pertinance

Eléphant du PHP | 91 Messages

24 juin 2011, 12:16

Hello,

J'ai une recherche à faire dans une base de donnée de produits, et je la fait bêtement en utilisant LIKE, sur le nom du produit et sur sa description.
"select * from table_products where products_name like '%".$keyword."%' or products_description like '%".$keyword."%'"
Maintenant, j'aimerais que les résultats pour lequels le mot clé apparait dans le nom du produit apparaissent avant ceux pour lesquels il n'apparait que dans la description.
Es-ce possible sans avoir une requête trop gourmande au final ?

Merci !

ViPHP
ViPHP | 4039 Messages

24 juin 2011, 13:06

Like est a MySQL ce que <blink> est au Html.

Une "vraie" recherche s'utilise avec match() against().
Et il est facile d'obtenir un score de pertinence.

Sinon il devrait être possible de résoudre ton problème du côté Php, en séparant les requêtes.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphant du PHP | 91 Messages

24 juin 2011, 14:01

Oui mais séparer les requêtes n'est pas compatible avec la façon dont sont générés les listings de produits sur ma boutique. Ils ne peuvent être générés qu' à partir d'une seule requête.

Pour match against, beh je vais lire ça.

Eléphant du PHP | 91 Messages

24 juin 2011, 18:25

Okey, ca marche bien avec match against, merci.