Code : Tout sélectionner
[mot1] ET [mot2]Code : Tout sélectionner
SELECT * FROM la_table WHERE le_champ='mot1' AND le_champ='mot2'Code : Tout sélectionner
[ [mot1] OU [mot2] ] ET [mot3]Code : Tout sélectionner
SELECT * FROM la_table WHERE (le_champ='mot1' OR le_champ='mot2') AND le_champ='mot3'Code : Tout sélectionner
SELECT * FROM la_table WHERE le_champ='mot1' AND le_champ='mot2'
SELECT * FROM la_table WHERE (le_champ='mot1' OR le_champ='mot2') AND le_champ='mot3'En fait il faut récupérer les critères pour construire plusieurs requetes.
En résumé : j'ai une table avec des fiches , j'ai une table des mots et une table de liaison lien_fiche_mots (1 fiche possède 0 à x mots).
Pour accélérer mes requetes, je procède comme ceci :
j'isole mes id fiches pour chaque mot saisi et après entre chaque 'condition' entre les mots je fais des array_merge, array_diff...
En fait j'ai beacoup de mal à écrire correctement la requête qui interroge en une fois la table (bien qu'en ayant mis des index sur les mots, cela rame à mort).
J'espère que c'est assez clair ?
Je plussoie, je ne sais pas quel est le besoin initial mais la solution me semble surpensée (au risque du coup de ne jamais être utilisée à cause de sa complexité intrinsèque). En plus d'être assez longue à implémenter...On peut y arriver, mais il faut développer plus de moyens (une sorte de parser léger pour des expressions logiques — et arithmétiques ? —). Je me demandais si c'était bien nécessaire. Pourquoi ne pas tout simplement faire un formulaire plus fournit en listes par exemple ? Car l'idée de laisser l'utilisateur écrire du pseudo-code-SQL me met mal à l'aise…