Voici le tableau videos: entrez la description de l'image ici

J'ai actuellement cette requête:

SELECT *, COUNT(history.v_id) AS videoCheck, MATCH (v_title, v_desc, v_tags) AGAINST ("%not%") AS relevance FROM videos LEFT JOIN history ON history.v_id = videos.v_id WHERE MATCH (v_title, v_desc, v_tags) AGAINST ("%not%") GROUP BY relevance DESC

Je veux que cette requête renvoie tous les résultats avec la chaîne not, mais elle ne renvoie qu'un résultat au lieu de 2.

Quelle est la meilleure façon de lui faire renvoyer toutes les requêtes correspondantes au lieu d'une seule?


Edit1:

Si j'utilise le modificateur WITH QUERY EXPANSION, il renvoie 2 résultats mais ce n'est toujours pas ce que je veux car si la chaîne change par exemple en asd, elle ne renvoie également que 2 résultats au lieu des nombreux autres qui sont stockés.

Edit2:

Requête avec LIKE:

SELECT *, COUNT(history.v_id) AS videoCheck FROM videos LEFT JOIN history ON history.v_id = videos.v_id WHERE CONCAT_WS(v_tags, v_title, v_desc) LIKE :input GROUP BY history.v_id ORDER BY videoCheck DESC
0
Tom 9 févr. 2021 à 11:45

1 réponse

Meilleure réponse

Cette requête semble faire ce que je veux:

SELECT *, MATCH (v_title, v_desc, v_tags) AGAINST (:input) AS relevance  FROM videos WHERE MATCH (v_title, v_desc, v_tags) AGAINST (:inputWhere) ORDER BY relevance DESC

Je n'ai plus besoin du LEFT JOIN car je ne commande plus par videoCheck.

0
Tom 9 févr. 2021 à 09:43