Salut à tous.
Je viens de corriger une coquille dans mon dernier message.
Et c'est bien ça le problème. Ta solution est conforme à ce que tu as compris du problème de 'billoum'. Mais d'après ce que j'ai compris, ce n'est pas cela qu'il veut.Citation:
Envoyé par punkoff
Je suis parti sur les deux tables cités dans son premier message et je ne comprenais pas pourquoi il mettait des mots dans la table 'words' alors que ses exemples étaient des phrases.
C'est avec l'intervention de StringBuilder que j'ai enfin compris qu'il y avait une troisième table 'files'. Il faut deviner ce qui n'est pas dit. :?
J'ai raisonné sur les phrases et non les mots et la solution que j'ai proposé (celle de la table temporaire avec une recherche sur '%the%' et '%cat%') est hyper longue. Car on est obligé de faire un 'full scan' de la table et que l'index est inutile dans ce cas là.
Je suis entièrement de ton avis.Citation:
Envoyé par punkoff
Je viens de refaire le test avec 'count(f.id1) > 1' et avec une phrase du genre 'cat and cats'.Citation:
Envoyé par StringBuilder
En effet, la ligne est sélectionnée (sur le test 'the%' et 'cat%') alors qu'elle ne devrait pas l'être. On obtient deux occurrences, une sur 'cat' et une autre sur 'cats'.
J'avais aussi remarqué qu'avec le 'count(wf.file_id) > 1', on comptabilise des valeurs pouvant provenir de différente phrases.
Mais d'une manière plus générale, le 'count() > 1' n'est pas la solution.
Bien vu StringBuilder ! Ta solution est la bonne.
En effet, c'est moi qui ait proposé le 'full text search', mais 'billoum' n'en veut pas.Citation:
Envoyé par StringBuilder
Il faut demander cela à billoum.Citation:
Envoyé par StringBuilder
Peut-être qu'il ne veut pas modifier sa base de données, voire changer le code pour adapter cette solution.
@ tous : c'est ce genre d'échange que j'apprécie grandement car par la confrontation des idées, j'apprends (et pas que moi) énormément de choses.
@+