Page 1 sur 1

[MYSQL] recherche avec LIKE et tri selon la pertinance

Posté : 24 juin 2011, 12:16
par Tong
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 !

Re: [MYSQL] recherche avec LIKE et tri selon la pertinance

Posté : 24 juin 2011, 13:06
par Berzemus
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.

Re: [MYSQL] recherche avec LIKE et tri selon la pertinance

Posté : 24 juin 2011, 14:01
par Tong
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.

Re: [MYSQL] recherche avec LIKE et tri selon la pertinance

Posté : 24 juin 2011, 18:25
par Tong
Okey, ca marche bien avec match against, merci.