Donc, si nous supposons que les colonnes name
et colors
sont les seules colonnes dans lesquelles nous devons rechercher, je ferais ce qui suit (solution naïve mais fonctionnera bien si votre base de données n'a pas des millions de lignes et que vous n'avez pas des milliers de clients qui recherchent à la fois).
Tout d'abord, créez une vue
CREATE VIEW SearchHere AS
SELECT item_id, CONCAT(name, ' ', colors) AS FullDescription
FROM table
Je ne connais pas le nom de la table dans votre capture d'écran, j'ai donc utilisé table
comme son nom.
Désormais, si un utilisateur recherche adult red pants
vous pourriez émettre une requête
SELECT item_id
FROM SearchHere
WHERE FullDescription LIKE '%adult%'
AND FullDescription LIKE '%red%'
AND FullDescription LIKE '%pants%'
Bien sûr, vous devrez générer la requête à la volée, mais ce n'est pas un problème. Vous pouvez jouer avec en utilisant AND
ou OR
et en plaçant des espaces entre le symbole générique %
et le terme de recherche. Vous voudriez probablement aussi faire la vue d'une manière plus sophistiquée, par exemple, faire plus que juste CONCAT
.