[RESOLU] Notice: Trying to get property of non-object in

Avatar du membre
Mammouth du PHP | 1609 Messages

09 juin 2019, 12:41

Voilà la class Combination qui boucle sans retourner les doublons ;)
class Combination {

  private $length ;
  private $max;
  private $letters;

  private $indexes = array();
  private $tabIndexes = array();
  private $combinations = array();

  public function __construct($letters, $max)
  {
    $this->length = strlen($letters);
    $this->max = $max;
    $this->letters = self::sortLetters($letters);
  }

  public static function sortLetters($letters)
  {
    $array = str_split($letters);
    sort($array);

    return implode('', $array);
  }

  public function next() {
    if (!count($this->indexes)) {
      for ($i = 0; $i < $this->max; $i++)
        $this->indexes[$i] = $i;

      return $this->getCombination();
    }

    for ($i = $this->max - 1; $i > -1; $i--) {
      if ($this->indexes[$i] + 1 < $this->length - ($this->max - $i - 1)) {
        $this->indexes[$i]++;

        if ($i + 1 < $this->max)
          for ($j = $i + 1; $j < $this->max; $j++)
            $this->indexes[$j] = $this->indexes[$j - 1] + 1;

        return $this->getCombination();
      }
    }

    return false;
  }

  public function getIndex()
  {
    return implode('', $this->indexes);
  }

  public function getCombination()
  {
    $this->tabIndexes[] = $this->getIndex();
    $combination = '';

    foreach ($this->indexes as $index)
      $combination.= $this->letters[$index];

    return $this->ignoreDuplicate($combination);
  }

  public function ignoreDuplicate($combination)
  {
    if (!in_array($combination, $this->combinations))
      return $this->combinations[] = $combination;

    return $this->next();
  }
}
Développeur web depuis + de 20 ans

Eléphant du PHP | 153 Messages

09 juin 2019, 12:44

Trop fort et trop rapide , merci l'artiste du php ;)

Avatar du membre
Mammouth du PHP | 1609 Messages

09 juin 2019, 12:46

J'ai un peu galéré quand même mais je viens de me réveiller :mrgreen:

PS : la fonction sous le while c'est très bien, c'est exactement ce qu'il fallait faire ;)
Développeur web depuis + de 20 ans

Eléphant du PHP | 153 Messages

09 juin 2019, 13:40

Merci Saian, c'est ce que je me suis dit, vu ton poste d'hier soir je dirais même ce matin très tôt .. et tu as remis ça ce matin , trop fort ... je vais mettre ça en application cette après midi vers 16h00 ;)

Avatar du membre
Mammouth du PHP | 1609 Messages

09 juin 2019, 14:13

Je faisais quelques testes pour m'amuser et j'ai testé anticonstitutionnellement et la le traitement devient trop gourmand, même avec un xdebug.max_nesting_level à 10000, le nesting level est atteint. J'ai testé avec 50000 et la mon serveur a planté. ^^
Donc je pense qu'il faudra que tu limites ce traitement aux mots inférieurs à x lettres, x étant à déterminer.

La avec analphabetisme 14 lettres ça passe encore bien malgré les 6131 combinaisons uniques possibles pour les 16368 combinaisons testées. ^^
Mais bon, moi je fais pas de requêtes sur une base de données dans mon test.

PS : à 15 lettres tu as 32751 combinaisons, je commence déjà à le sentir sur mon serveur local de tests. En fait tu doubles le nombre de combinaisons possibles à chaque fois que tu ajoutes une lettre. Soit 65518 combinaisons à 16 lettres et la déjà ça prend bien 2-3s sans requêtes. Donc à priori une limite aux mots inférieurs à 14, 15 lettres me paraît pas mal. A voir sur ton serveur.
Développeur web depuis + de 20 ans

Eléphant du PHP | 153 Messages

09 juin 2019, 18:29

J'ai essayé , et ça fait ramer le site même pour un petit mot, je ne comprend pas car j'avais testé uniquement ton programme en dehors de l'index.php et il marchait assez bien (rame un peu quand même)

Avatar du membre
Mammouth du PHP | 1609 Messages

09 juin 2019, 18:50

Bah pour chaque combinaison retournée il y a une requête donc si tu es sur un mot un peu long tu dois avoir des milliers de requêtes qui se font. Assures toi de bien avoir un index sur la colonne sorted_letters, ça peut faire une sacré différence sur les performances.

Sans requête avec 14 lettres j'obtiens :
Total combinations 16368
Executed in 0.48073601722717s (480ms)

et avec 15 lettres :
Total combinations 32751
Executed in 1.3739309310913s (1,37s)

16k à 32k requêtes ça bouffe quand même un peu de temps (après normalement tu as tous les doublons en moins). Mais avec des mots de 10 caractères ou moins ça doit vraiment pas faire grosse différence ou du moins ça ne doit pas trop se sentir.

Avec 10 lettres :
Total combinations 1012
Executed in 0.022289991378784s (20ms)

Même avec 11 ou 12 lettres ça doit pas trop se sentir si ta table a bien un index sur sorted_letters.

EDIT :
Après tu peux drastiquement réduire le nombre de requêtes aussi. Je vais te faire un exemple...
Développeur web depuis + de 20 ans

Eléphant du PHP | 153 Messages

09 juin 2019, 19:07

Haaaaaaa le fameux index, je l'avais oublié celui là effectivement maintenant ça marche :)

Eléphant du PHP | 153 Messages

09 juin 2019, 19:08

Si tu peux essayer avec ce mot :) : stalagmometres

Eléphant du PHP | 153 Messages

09 juin 2019, 19:19

Oupsss j'ai dit une bêtise en fait non ça rame quand même

Avatar du membre
Mammouth du PHP | 1609 Messages

09 juin 2019, 19:19

Alors avec stalagmometres j'obtiens avec mon script :
Total unique combinations 3877
Total combinations 16368
Executed in 0.30310797691345s (303ms)

Pour la générations des requêtes tu peux tester cet algorithme :
$word = 'stalagmometres';
$query = 'SELECT * FROM dictionnaire WHERE sorted_letters IN (:combinations)';

for ($length = strlen($word) - 1; $length > 1; $length--)
{
  echo "<br/>Query for combinations with <b>$length</b> letters<br/>";
  $combinations = array();
  $combination = new Combination($word, $length);

  while ($letters = $combination->next()) {
    $combinations[] = $letters;
  }

  $combinationQuery = str_replace(':combinations', "'".implode("', '", $combinations)."'", $query);

  echo $combinationQuery.'<br/><br/>';
}

J'obtiens en 305ms (12 requêtes au lieu de 3877 et normalement avec l'index ça devrait être rapide) :
Query for combinations with 13 letters
SELECT * FROM dictionnaire WHERE sorted_letters IN ('aaeeglmmorsst', 'aaeeglmmorstt', 'aaeeglmmosstt', 'aaeeglmmrsstt', 'aaeeglmorsstt', 'aaeegmmorsstt', 'aaeelmmorsstt', 'aaeglmmorsstt', 'aeeglmmorsstt')


Query for combinations with 12 letters
SELECT * FROM dictionnaire WHERE sorted_letters IN ('aaeeglmmorss', 'aaeeglmmorst', 'aaeeglmmortt', 'aaeeglmmosst', 'aaeeglmmostt', 'aaeeglmmrsst', 'aaeeglmmrstt', 'aaeeglmmsstt', 'aaeeglmorsst', 'aaeeglmorstt', 'aaeeglmosstt', 'aaeeglmrsstt', 'aaeeglorsstt', 'aaeegmmorsst', 'aaeegmmorstt', 'aaeegmmosstt', 'aaeegmmrsstt', 'aaeegmorsstt', 'aaeelmmorsst', 'aaeelmmorstt', 'aaeelmmosstt', 'aaeelmmrsstt', 'aaeelmorsstt', 'aaeemmorsstt', 'aaeglmmorsst', 'aaeglmmorstt', 'aaeglmmosstt', 'aaeglmmrsstt', 'aaeglmorsstt', 'aaegmmorsstt', 'aaelmmorsstt', 'aaglmmorsstt', 'aeeglmmorsst', 'aeeglmmorstt', 'aeeglmmosstt', 'aeeglmmrsstt', 'aeeglmorsstt', 'aeegmmorsstt', 'aeelmmorsstt', 'aeglmmorsstt', 'eeglmmorsstt')


Query for combinations with 11 letters
SELECT * FROM dictionnaire WHERE sorted_letters IN ('aaeeglmmors', 'aaeeglmmort', 'aaeeglmmoss', 'aaeeglmmost', 'aaeeglmmott', 'aaeeglmmrss', 'aaeeglmmrst', 'aaeeglmmrtt', 'aaeeglmmsst', 'aaeeglmmstt', 'aaeeglmorss', 'aaeeglmorst', 'aaeeglmortt', 'aaeeglmosst', 'aaeeglmostt', 'aaeeglmrsst', 'aaeeglmrstt', 'aaeeglmsstt', 'aaeeglorsst', 'aaeeglorstt', 'aaeeglosstt', 'aaeeglrsstt', 'aaeegmmorss', 'aaeegmmorst', 'aaeegmmortt', 'aaeegmmosst', 'aaeegmmostt', 'aaeegmmrsst', 'aaeegmmrstt', 'aaeegmmsstt', 'aaeegmorsst', 'aaeegmorstt', 'aaeegmosstt', 'aaeegmrsstt', 'aaeegorsstt', 'aaeelmmorss', 'aaeelmmorst', 'aaeelmmortt', 'aaeelmmosst', 'aaeelmmostt', 'aaeelmmrsst', 'aaeelmmrstt', 'aaeelmmsstt', 'aaeelmorsst', 'aaeelmorstt', 'aaeelmosstt', 'aaeelmrsstt', 'aaeelorsstt', 'aaeemmorsst', 'aaeemmorstt', 'aaeemmosstt', 'aaeemmrsstt', 'aaeemorsstt', 'aaeglmmorss', 'aaeglmmorst', 'aaeglmmortt', 'aaeglmmosst', 'aaeglmmostt', 'aaeglmmrsst', 'aaeglmmrstt', 'aaeglmmsstt', 'aaeglmorsst', 'aaeglmorstt', 'aaeglmosstt', 'aaeglmrsstt', 'aaeglorsstt', 'aaegmmorsst', 'aaegmmorstt', 'aaegmmosstt', 'aaegmmrsstt', 'aaegmorsstt', 'aaelmmorsst', 'aaelmmorstt', 'aaelmmosstt', 'aaelmmrsstt', 'aaelmorsstt', 'aaemmorsstt', 'aaglmmorsst', 'aaglmmorstt', 'aaglmmosstt', 'aaglmmrsstt', 'aaglmorsstt', 'aagmmorsstt', 'aalmmorsstt', 'aeeglmmorss', 'aeeglmmorst', 'aeeglmmortt', 'aeeglmmosst', 'aeeglmmostt', 'aeeglmmrsst', 'aeeglmmrstt', 'aeeglmmsstt', 'aeeglmorsst', 'aeeglmorstt', 'aeeglmosstt', 'aeeglmrsstt', 'aeeglorsstt', 'aeegmmorsst', 'aeegmmorstt', 'aeegmmosstt', 'aeegmmrsstt', 'aeegmorsstt', 'aeelmmorsst', 'aeelmmorstt', 'aeelmmosstt', 'aeelmmrsstt', 'aeelmorsstt', 'aeemmorsstt', 'aeglmmorsst', 'aeglmmorstt', 'aeglmmosstt', 'aeglmmrsstt', 'aeglmorsstt', 'aegmmorsstt', 'aelmmorsstt', 'aglmmorsstt', 'eeglmmorsst', 'eeglmmorstt', 'eeglmmosstt', 'eeglmmrsstt', 'eeglmorsstt', 'eegmmorsstt', 'eelmmorsstt', 'eglmmorsstt')


Query for combinations with 10 letters
SELECT * FROM dictionnaire WHERE sorted_letters IN ('aaeeglmmor', 'aaeeglmmos', 'aaeeglmmot', 'aaeeglmmrs', 'aaeeglmmrt', 'aaeeglmmss', 'aaeeglmmst', 'aaeeglmmtt', 'aaeeglmors', 'aaeeglmort', 'aaeeglmoss', 'aaeeglmost', 'aaeeglmott', 'aaeeglmrss', 'aaeeglmrst', 'aaeeglmrtt', 'aaeeglmsst', 'aaeeglmstt', 'aaeeglorss', 'aaeeglorst', 'aaeeglortt', 'aaeeglosst', 'aaeeglostt', 'aaeeglrsst', 'aaeeglrstt', 'aaeeglsstt', 'aaeegmmors', 'aaeegmmort', 'aaeegmmoss', 'aaeegmmost', 'aaeegmmott', 'aaeegmmrss', 'aaeegmmrst', 'aaeegmmrtt', 'aaeegmmsst', 'aaeegmmstt', 'aaeegmorss', 'aaeegmorst', 'aaeegmortt', 'aaeegmosst', 'aaeegmostt', 'aaeegmrsst', 'aaeegmrstt', 'aaeegmsstt', 'aaeegorsst', 'aaeegorstt', 'aaeegosstt', 'aaeegrsstt', 'aaeelmmors', 'aaeelmmort', 'aaeelmmoss', 'aaeelmmost', 'aaeelmmott', 'aaeelmmrss', 'aaeelmmrst', 'aaeelmmrtt', 'aaeelmmsst', 'aaeelmmstt', 'aaeelmorss', 'aaeelmorst', 'aaeelmortt', 'aaeelmosst', 'aaeelmostt', 'aaeelmrsst', 'aaeelmrstt', 'aaeelmsstt', 'aaeelorsst', 'aaeelorstt', 'aaeelosstt', 'aaeelrsstt', 'aaeemmorss', 'aaeemmorst', 'aaeemmortt', 'aaeemmosst', 'aaeemmostt', 'aaeemmrsst', 'aaeemmrstt', 'aaeemmsstt', 'aaeemorsst', 'aaeemorstt', 'aaeemosstt', 'aaeemrsstt', 'aaeeorsstt', 'aaeglmmors', 'aaeglmmort', 'aaeglmmoss', 'aaeglmmost', 'aaeglmmott', 'aaeglmmrss', 'aaeglmmrst', 'aaeglmmrtt', 'aaeglmmsst', 'aaeglmmstt', 'aaeglmorss', 'aaeglmorst', 'aaeglmortt', 'aaeglmosst', 'aaeglmostt', 'aaeglmrsst', 'aaeglmrstt', 'aaeglmsstt', 'aaeglorsst', 'aaeglorstt', 'aaeglosstt', 'aaeglrsstt', 'aaegmmorss', 'aaegmmorst', 'aaegmmortt', 'aaegmmosst', 'aaegmmostt', 'aaegmmrsst', 'aaegmmrstt', 'aaegmmsstt', 'aaegmorsst', 'aaegmorstt', 'aaegmosstt', 'aaegmrsstt', 'aaegorsstt', 'aaelmmorss', 'aaelmmorst', 'aaelmmortt', 'aaelmmosst', 'aaelmmostt', 'aaelmmrsst', 'aaelmmrstt', 'aaelmmsstt', 'aaelmorsst', 'aaelmorstt', 'aaelmosstt', 'aaelmrsstt', 'aaelorsstt', 'aaemmorsst', 'aaemmorstt', 'aaemmosstt', 'aaemmrsstt', 'aaemorsstt', 'aaglmmorss', 'aaglmmorst', 'aaglmmortt', 'aaglmmosst', 'aaglmmostt', 'aaglmmrsst', 'aaglmmrstt', 'aaglmmsstt', 'aaglmorsst', 'aaglmorstt', 'aaglmosstt', 'aaglmrsstt', 'aaglorsstt', 'aagmmorsst', 'aagmmorstt', 'aagmmosstt', 'aagmmrsstt', 'aagmorsstt', 'aalmmorsst', 'aalmmorstt', 'aalmmosstt', 'aalmmrsstt', 'aalmorsstt', 'aammorsstt', 'aeeglmmors', 'aeeglmmort', 'aeeglmmoss', 'aeeglmmost', 'aeeglmmott', 'aeeglmmrss', 'aeeglmmrst', 'aeeglmmrtt', 'aeeglmmsst', 'aeeglmmstt', 'aeeglmorss', 'aeeglmorst', 'aeeglmortt', 'aeeglmosst', 'aeeglmostt', 'aeeglmrsst', 'aeeglmrstt', 'aeeglmsstt', 'aeeglorsst', 'aeeglorstt', 'aeeglosstt', 'aeeglrsstt', 'aeegmmorss', 'aeegmmorst', 'aeegmmortt', 'aeegmmosst', 'aeegmmostt', 'aeegmmrsst', 'aeegmmrstt', 'aeegmmsstt', 'aeegmorsst', 'aeegmorstt', 'aeegmosstt', 'aeegmrsstt', 'aeegorsstt', 'aeelmmorss', 'aeelmmorst', 'aeelmmortt', 'aeelmmosst', 'aeelmmostt', 'aeelmmrsst', 'aeelmmrstt', 'aeelmmsstt', 'aeelmorsst', 'aeelmorstt', 'aeelmosstt', 'aeelmrsstt', 'aeelorsstt', 'aeemmorsst', 'aeemmorstt', 'aeemmosstt', 'aeemmrsstt', 'aeemorsstt', 'aeglmmorss', 'aeglmmorst', 'aeglmmortt', 'aeglmmosst', 'aeglmmostt', 'aeglmmrsst', 'aeglmmrstt', 'aeglmmsstt', 'aeglmorsst', 'aeglmorstt', 'aeglmosstt', 'aeglmrsstt', 'aeglorsstt', 'aegmmorsst', 'aegmmorstt', 'aegmmosstt', 'aegmmrsstt', 'aegmorsstt', 'aelmmorsst', 'aelmmorstt', 'aelmmosstt', 'aelmmrsstt', 'aelmorsstt', 'aemmorsstt', 'aglmmorsst', 'aglmmorstt', 'aglmmosstt', 'aglmmrsstt', 'aglmorsstt', 'agmmorsstt', 'almmorsstt', 'eeglmmorss', 'eeglmmorst', 'eeglmmortt', 'eeglmmosst', 'eeglmmostt', 'eeglmmrsst', 'eeglmmrstt', 'eeglmmsstt', 'eeglmorsst', 'eeglmorstt', 'eeglmosstt', 'eeglmrsstt', 'eeglorsstt', 'eegmmorsst', 'eegmmorstt', 'eegmmosstt', 'eegmmrsstt', 'eegmorsstt', 'eelmmorsst', 'eelmmorstt', 'eelmmosstt', 'eelmmrsstt', 'eelmorsstt', 'eemmorsstt', 'eglmmorsst', 'eglmmorstt', 'eglmmosstt', 'eglmmrsstt', 'eglmorsstt', 'egmmorsstt', 'elmmorsstt', 'glmmorsstt')


Query for combinations with 9 letters
SELECT * FROM dictionnaire WHERE sorted_letters IN ('aaeeglmmo', 'aaeeglmmr', 'aaeeglmms', 'aaeeglmmt', 'aaeeglmor', 'aaeeglmos', 'aaeeglmot', 'aaeeglmrs', 'aaeeglmrt', 'aaeeglmss', 'aaeeglmst', 'aaeeglmtt', 'aaeeglors', 'aaeeglort', 'aaeegloss', 'aaeeglost', 'aaeeglott', 'aaeeglrss', 'aaeeglrst', 'aaeeglrtt', 'aaeeglsst', 'aaeeglstt', 'aaeegmmor', 'aaeegmmos', 'aaeegmmot', 'aaeegmmrs', 'aaeegmmrt', 'aaeegmmss', 'aaeegmmst', 'aaeegmmtt', 'aaeegmors', 'aaeegmort', 'aaeegmoss', 'aaeegmost', 'aaeegmott', 'aaeegmrss', 'aaeegmrst', 'aaeegmrtt', 'aaeegmsst', 'aaeegmstt', 'aaeegorss', 'aaeegorst', 'aaeegortt', 'aaeegosst', 'aaeegostt', 'aaeegrsst', 'aaeegrstt', 'aaeegsstt', 'aaeelmmor', 'aaeelmmos', 'aaeelmmot', 'aaeelmmrs', 'aaeelmmrt', 'aaeelmmss', 'aaeelmmst', 'aaeelmmtt', 'aaeelmors', 'aaeelmort', 'aaeelmoss', 'aaeelmost', 'aaeelmott', 'aaeelmrss', 'aaeelmrst', 'aaeelmrtt', 'aaeelmsst', 'aaeelmstt', 'aaeelorss', 'aaeelorst', 'aaeelortt', 'aaeelosst', 'aaeelostt', 'aaeelrsst', 'aaeelrstt', 'aaeelsstt', 'aaeemmors', 'aaeemmort', 'aaeemmoss', 'aaeemmost', 'aaeemmott', 'aaeemmrss', 'aaeemmrst', 'aaeemmrtt', 'aaeemmsst', 'aaeemmstt', 'aaeemorss', 'aaeemorst', 'aaeemortt', 'aaeemosst', 'aaeemostt', 'aaeemrsst', 'aaeemrstt', 'aaeemsstt', 'aaeeorsst', 'aaeeorstt', 'aaeeosstt', 'aaeersstt', 'aaeglmmor', 'aaeglmmos', 'aaeglmmot', 'aaeglmmrs', 'aaeglmmrt', 'aaeglmmss', 'aaeglmmst', 'aaeglmmtt', 'aaeglmors', 'aaeglmort', 'aaeglmoss', 'aaeglmost', 'aaeglmott', 'aaeglmrss', 'aaeglmrst', 'aaeglmrtt', 'aaeglmsst', 'aaeglmstt', 'aaeglorss', 'aaeglorst', 'aaeglortt', 'aaeglosst', 'aaeglostt', 'aaeglrsst', 'aaeglrstt', 'aaeglsstt', 'aaegmmors', 'aaegmmort', 'aaegmmoss', 'aaegmmost', 'aaegmmott', 'aaegmmrss', 'aaegmmrst', 'aaegmmrtt', 'aaegmmsst', 'aaegmmstt', 'aaegmorss', 'aaegmorst', 'aaegmortt', 'aaegmosst', 'aaegmostt', 'aaegmrsst', 'aaegmrstt', 'aaegmsstt', 'aaegorsst', 'aaegorstt', 'aaegosstt', 'aaegrsstt', 'aaelmmors', 'aaelmmort', 'aaelmmoss', 'aaelmmost', 'aaelmmott', 'aaelmmrss', 'aaelmmrst', 'aaelmmrtt', 'aaelmmsst', 'aaelmmstt', 'aaelmorss', 'aaelmorst', 'aaelmortt', 'aaelmosst', 'aaelmostt', 'aaelmrsst', 'aaelmrstt', 'aaelmsstt', 'aaelorsst', 'aaelorstt', 'aaelosstt', 'aaelrsstt', 'aaemmorss', 'aaemmorst', 'aaemmortt', 'aaemmosst', 'aaemmostt', 'aaemmrsst', 'aaemmrstt', 'aaemmsstt', 'aaemorsst', 'aaemorstt', 'aaemosstt', 'aaemrsstt', 'aaeorsstt', 'aaglmmors', 'aaglmmort', 'aaglmmoss', 'aaglmmost', 'aaglmmott', 'aaglmmrss', 'aaglmmrst', 'aaglmmrtt', 'aaglmmsst', 'aaglmmstt', 'aaglmorss', 'aaglmorst', 'aaglmortt', 'aaglmosst', 'aaglmostt', 'aaglmrsst', 'aaglmrstt', 'aaglmsstt', 'aaglorsst', 'aaglorstt', 'aaglosstt', 'aaglrsstt', 'aagmmorss', 'aagmmorst', 'aagmmortt', 'aagmmosst', 'aagmmostt', 'aagmmrsst', 'aagmmrstt', 'aagmmsstt', 'aagmorsst', 'aagmorstt', 'aagmosstt', 'aagmrsstt', 'aagorsstt', 'aalmmorss', 'aalmmorst', 'aalmmortt', 'aalmmosst', 'aalmmostt', 'aalmmrsst', 'aalmmrstt', 'aalmmsstt', 'aalmorsst', 'aalmorstt', 'aalmosstt', 'aalmrsstt', 'aalorsstt', 'aammorsst', 'aammorstt', 'aammosstt', 'aammrsstt', 'aamorsstt', 'aeeglmmor', 'aeeglmmos', 'aeeglmmot', 'aeeglmmrs', 'aeeglmmrt', 'aeeglmmss', 'aeeglmmst', 'aeeglmmtt', 'aeeglmors', 'aeeglmort', 'aeeglmoss', 'aeeglmost', 'aeeglmott', 'aeeglmrss', 'aeeglmrst', 'aeeglmrtt', 'aeeglmsst', 'aeeglmstt', 'aeeglorss', 'aeeglorst', 'aeeglortt', 'aeeglosst', 'aeeglostt', 'aeeglrsst', 'aeeglrstt', 'aeeglsstt', 'aeegmmors', 'aeegmmort', 'aeegmmoss', 'aeegmmost', 'aeegmmott', 'aeegmmrss', 'aeegmmrst', 'aeegmmrtt', 'aeegmmsst', 'aeegmmstt', 'aeegmorss', 'aeegmorst', 'aeegmortt', 'aeegmosst', 'aeegmostt', 'aeegmrsst', 'aeegmrstt', 'aeegmsstt', 'aeegorsst', 'aeegorstt', 'aeegosstt', 'aeegrsstt', 'aeelmmors', 'aeelmmort', 'aeelmmoss', 'aeelmmost', 'aeelmmott', 'aeelmmrss', 'aeelmmrst', 'aeelmmrtt', 'aeelmmsst', 'aeelmmstt', 'aeelmorss', 'aeelmorst', 'aeelmortt', 'aeelmosst', 'aeelmostt', 'aeelmrsst', 'aeelmrstt', 'aeelmsstt', 'aeelorsst', 'aeelorstt', 'aeelosstt', 'aeelrsstt', 'aeemmorss', 'aeemmorst', 'aeemmortt', 'aeemmosst', 'aeemmostt', 'aeemmrsst', 'aeemmrstt', 'aeemmsstt', 'aeemorsst', 'aeemorstt', 'aeemosstt', 'aeemrsstt', 'aeeorsstt', 'aeglmmors', 'aeglmmort', 'aeglmmoss', 'aeglmmost', 'aeglmmott', 'aeglmmrss', 'aeglmmrst', 'aeglmmrtt', 'aeglmmsst', 'aeglmmstt', 'aeglmorss', 'aeglmorst', 'aeglmortt', 'aeglmosst', 'aeglmostt', 'aeglmrsst', 'aeglmrstt', 'aeglmsstt', 'aeglorsst', 'aeglorstt', 'aeglosstt', 'aeglrsstt', 'aegmmorss', 'aegmmorst', 'aegmmortt', 'aegmmosst', 'aegmmostt', 'aegmmrsst', 'aegmmrstt', 'aegmmsstt', 'aegmorsst', 'aegmorstt', 'aegmosstt', 'aegmrsstt', 'aegorsstt', 'aelmmorss', 'aelmmorst', 'aelmmortt', 'aelmmosst', 'aelmmostt', 'aelmmrsst', 'aelmmrstt', 'aelmmsstt', 'aelmorsst', 'aelmorstt', 'aelmosstt', 'aelmrsstt', 'aelorsstt', 'aemmorsst', 'aemmorstt', 'aemmosstt', 'aemmrsstt', 'aemorsstt', 'aglmmorss', 'aglmmorst', 'aglmmortt', 'aglmmosst', 'aglmmostt', 'aglmmrsst', 'aglmmrstt', 'aglmmsstt', 'aglmorsst', 'aglmorstt', 'aglmosstt', 'aglmrsstt', 'aglorsstt', 'agmmorsst', 'agmmorstt', 'agmmosstt', 'agmmrsstt', 'agmorsstt', 'almmorsst', 'almmorstt', 'almmosstt', 'almmrsstt', 'almorsstt', 'ammorsstt', 'eeglmmors', 'eeglmmort', 'eeglmmoss', 'eeglmmost', 'eeglmmott', 'eeglmmrss', 'eeglmmrst', 'eeglmmrtt', 'eeglmmsst', 'eeglmmstt', 'eeglmorss', 'eeglmorst', 'eeglmortt', 'eeglmosst', 'eeglmostt', 'eeglmrsst', 'eeglmrstt', 'eeglmsstt', 'eeglorsst', 'eeglorstt', 'eeglosstt', 'eeglrsstt', 'eegmmorss', 'eegmmorst', 'eegmmortt', 'eegmmosst', 'eegmmostt', 'eegmmrsst', 'eegmmrstt', 'eegmmsstt', 'eegmorsst', 'eegmorstt', 'eegmosstt', 'eegmrsstt', 'eegorsstt', 'eelmmorss', 'eelmmorst', 'eelmmortt', 'eelmmosst', 'eelmmostt', 'eelmmrsst', 'eelmmrstt', 'eelmmsstt', 'eelmorsst', 'eelmorstt', 'eelmosstt', 'eelmrsstt', 'eelorsstt', 'eemmorsst', 'eemmorstt', 'eemmosstt', 'eemmrsstt', 'eemorsstt', 'eglmmorss', 'eglmmorst', 'eglmmortt', 'eglmmosst', 'eglmmostt', 'eglmmrsst', 'eglmmrstt', 'eglmmsstt', 'eglmorsst', 'eglmorstt', 'eglmosstt', 'eglmrsstt', 'eglorsstt', 'egmmorsst', 'egmmorstt', 'egmmosstt', 'egmmrsstt', 'egmorsstt', 'elmmorsst', 'elmmorstt', 'elmmosstt', 'elmmrsstt', 'elmorsstt', 'emmorsstt', 'glmmorsst', 'glmmorstt', 'glmmosstt', 'glmmrsstt', 'glmorsstt', 'gmmorsstt', 'lmmorsstt')


Query for combinations with 8 letters
SELECT * FROM dictionnaire WHERE sorted_letters IN ('aaeeglmm', 'aaeeglmo', 'aaeeglmr', 'aaeeglms', 'aaeeglmt', 'aaeeglor', 'aaeeglos', 'aaeeglot', 'aaeeglrs', 'aaeeglrt', 'aaeeglss', 'aaeeglst', 'aaeegltt', 'aaeegmmo', 'aaeegmmr', 'aaeegmms', 'aaeegmmt', 'aaeegmor', 'aaeegmos', 'aaeegmot', 'aaeegmrs', 'aaeegmrt', 'aaeegmss', 'aaeegmst', 'aaeegmtt', 'aaeegors', 'aaeegort', 'aaeegoss', 'aaeegost', 'aaeegott', 'aaeegrss', 'aaeegrst', 'aaeegrtt', 'aaeegsst', 'aaeegstt', 'aaeelmmo', 'aaeelmmr', 'aaeelmms', 'aaeelmmt', 'aaeelmor', 'aaeelmos', 'aaeelmot', 'aaeelmrs', 'aaeelmrt', 'aaeelmss', 'aaeelmst', 'aaeelmtt', 'aaeelors', 'aaeelort', 'aaeeloss', 'aaeelost', 'aaeelott', 'aaeelrss', 'aaeelrst', 'aaeelrtt', 'aaeelsst', 'aaeelstt', 'aaeemmor', 'aaeemmos', 'aaeemmot', 'aaeemmrs', 'aaeemmrt', 'aaeemmss', 'aaeemmst', 'aaeemmtt', 'aaeemors', 'aaeemort', 'aaeemoss', 'aaeemost', 'aaeemott', 'aaeemrss', 'aaeemrst', 'aaeemrtt', 'aaeemsst', 'aaeemstt', 'aaeeorss', 'aaeeorst', 'aaeeortt', 'aaeeosst', 'aaeeostt', 'aaeersst', 'aaeerstt', 'aaeesstt', 'aaeglmmo', 'aaeglmmr', 'aaeglmms', 'aaeglmmt', 'aaeglmor', 'aaeglmos', 'aaeglmot', 'aaeglmrs', 'aaeglmrt', 'aaeglmss', 'aaeglmst', 'aaeglmtt', 'aaeglors', 'aaeglort', 'aaegloss', 'aaeglost', 'aaeglott', 'aaeglrss', 'aaeglrst', 'aaeglrtt', 'aaeglsst', 'aaeglstt', 'aaegmmor', 'aaegmmos', 'aaegmmot', 'aaegmmrs', 'aaegmmrt', 'aaegmmss', 'aaegmmst', 'aaegmmtt', 'aaegmors', 'aaegmort', 'aaegmoss', 'aaegmost', 'aaegmott', 'aaegmrss', 'aaegmrst', 'aaegmrtt', 'aaegmsst', 'aaegmstt', 'aaegorss', 'aaegorst', 'aaegortt', 'aaegosst', 'aaegostt', 'aaegrsst', 'aaegrstt', 'aaegsstt', 'aaelmmor', 'aaelmmos', 'aaelmmot', 'aaelmmrs', 'aaelmmrt', 'aaelmmss', 'aaelmmst', 'aaelmmtt', 'aaelmors', 'aaelmort', 'aaelmoss', 'aaelmost', 'aaelmott', 'aaelmrss', 'aaelmrst', 'aaelmrtt', 'aaelmsst', 'aaelmstt', 'aaelorss', 'aaelorst', 'aaelortt', 'aaelosst', 'aaelostt', 'aaelrsst', 'aaelrstt', 'aaelsstt', 'aaemmors', 'aaemmort', 'aaemmoss', 'aaemmost', 'aaemmott', 'aaemmrss', 'aaemmrst', 'aaemmrtt', 'aaemmsst', 'aaemmstt', 'aaemorss', 'aaemorst', 'aaemortt', 'aaemosst', 'aaemostt', 'aaemrsst', 'aaemrstt', 'aaemsstt', 'aaeorsst', 'aaeorstt', 'aaeosstt', 'aaersstt', 'aaglmmor', 'aaglmmos', 'aaglmmot', 'aaglmmrs', 'aaglmmrt', 'aaglmmss', 'aaglmmst', 'aaglmmtt', 'aaglmors', 'aaglmort', 'aaglmoss', 'aaglmost', 'aaglmott', 'aaglmrss', 'aaglmrst', 'aaglmrtt', 'aaglmsst', 'aaglmstt', 'aaglorss', 'aaglorst', 'aaglortt', 'aaglosst', 'aaglostt', 'aaglrsst', 'aaglrstt', 'aaglsstt', 'aagmmors', 'aagmmort', 'aagmmoss', 'aagmmost', 'aagmmott', 'aagmmrss', 'aagmmrst', 'aagmmrtt', 'aagmmsst', 'aagmmstt', 'aagmorss', 'aagmorst', 'aagmortt', 'aagmosst', 'aagmostt', 'aagmrsst', 'aagmrstt', 'aagmsstt', 'aagorsst', 'aagorstt', 'aagosstt', 'aagrsstt', 'aalmmors', 'aalmmort', 'aalmmoss', 'aalmmost', 'aalmmott', 'aalmmrss', 'aalmmrst', 'aalmmrtt', 'aalmmsst', 'aalmmstt', 'aalmorss', 'aalmorst', 'aalmortt', 'aalmosst', 'aalmostt', 'aalmrsst', 'aalmrstt', 'aalmsstt', 'aalorsst', 'aalorstt', 'aalosstt', 'aalrsstt', 'aammorss', 'aammorst', 'aammortt', 'aammosst', 'aammostt', 'aammrsst', 'aammrstt', 'aammsstt', 'aamorsst', 'aamorstt', 'aamosstt', 'aamrsstt', 'aaorsstt', 'aeeglmmo', 'aeeglmmr', 'aeeglmms', 'aeeglmmt', 'aeeglmor', 'aeeglmos', 'aeeglmot', 'aeeglmrs', 'aeeglmrt', 'aeeglmss', 'aeeglmst', 'aeeglmtt', 'aeeglors', 'aeeglort', 'aeegloss', 'aeeglost', 'aeeglott', 'aeeglrss', 'aeeglrst', 'aeeglrtt', 'aeeglsst', 'aeeglstt', 'aeegmmor', 'aeegmmos', 'aeegmmot', 'aeegmmrs', 'aeegmmrt', 'aeegmmss', 'aeegmmst', 'aeegmmtt', 'aeegmors', 'aeegmort', 'aeegmoss', 'aeegmost', 'aeegmott', 'aeegmrss', 'aeegmrst', 'aeegmrtt', 'aeegmsst', 'aeegmstt', 'aeegorss', 'aeegorst', 'aeegortt', 'aeegosst', 'aeegostt', 'aeegrsst', 'aeegrstt', 'aeegsstt', 'aeelmmor', 'aeelmmos', 'aeelmmot', 'aeelmmrs', 'aeelmmrt', 'aeelmmss', 'aeelmmst', 'aeelmmtt', 'aeelmors', 'aeelmort', 'aeelmoss', 'aeelmost', 'aeelmott', 'aeelmrss', 'aeelmrst', 'aeelmrtt', 'aeelmsst', 'aeelmstt', 'aeelorss', 'aeelorst', 'aeelortt', 'aeelosst', 'aeelostt', 'aeelrsst', 'aeelrstt', 'aeelsstt', 'aeemmors', 'aeemmort', 'aeemmoss', 'aeemmost', 'aeemmott', 'aeemmrss', 'aeemmrst', 'aeemmrtt', 'aeemmsst', 'aeemmstt', 'aeemorss', 'aeemorst', 'aeemortt', 'aeemosst', 'aeemostt', 'aeemrsst', 'aeemrstt', 'aeemsstt', 'aeeorsst', 'aeeorstt', 'aeeosstt', 'aeersstt', 'aeglmmor', 'aeglmmos', 'aeglmmot', 'aeglmmrs', 'aeglmmrt', 'aeglmmss', 'aeglmmst', 'aeglmmtt', 'aeglmors', 'aeglmort', 'aeglmoss', 'aeglmost', 'aeglmott', 'aeglmrss', 'aeglmrst', 'aeglmrtt', 'aeglmsst', 'aeglmstt', 'aeglorss', 'aeglorst', 'aeglortt', 'aeglosst', 'aeglostt', 'aeglrsst', 'aeglrstt', 'aeglsstt', 'aegmmors', 'aegmmort', 'aegmmoss', 'aegmmost', 'aegmmott', 'aegmmrss', 'aegmmrst', 'aegmmrtt', 'aegmmsst', 'aegmmstt', 'aegmorss', 'aegmorst', 'aegmortt', 'aegmosst', 'aegmostt', 'aegmrsst', 'aegmrstt', 'aegmsstt', 'aegorsst', 'aegorstt', 'aegosstt', 'aegrsstt', 'aelmmors', 'aelmmort', 'aelmmoss', 'aelmmost', 'aelmmott', 'aelmmrss', 'aelmmrst', 'aelmmrtt', 'aelmmsst', 'aelmmstt', 'aelmorss', 'aelmorst', 'aelmortt', 'aelmosst', 'aelmostt', 'aelmrsst', 'aelmrstt', 'aelmsstt', 'aelorsst', 'aelorstt', 'aelosstt', 'aelrsstt', 'aemmorss', 'aemmorst', 'aemmortt', 'aemmosst', 'aemmostt', 'aemmrsst', 'aemmrstt', 'aemmsstt', 'aemorsst', 'aemorstt', 'aemosstt', 'aemrsstt', 'aeorsstt', 'aglmmors', 'aglmmort', 'aglmmoss', 'aglmmost', 'aglmmott', 'aglmmrss', 'aglmmrst', 'aglmmrtt', 'aglmmsst', 'aglmmstt', 'aglmorss', 'aglmorst', 'aglmortt', 'aglmosst', 'aglmostt', 'aglmrsst', 'aglmrstt', 'aglmsstt', 'aglorsst', 'aglorstt', 'aglosstt', 'aglrsstt', 'agmmorss', 'agmmorst', 'agmmortt', 'agmmosst', 'agmmostt', 'agmmrsst', 'agmmrstt', 'agmmsstt', 'agmorsst', 'agmorstt', 'agmosstt', 'agmrsstt', 'agorsstt', 'almmorss', 'almmorst', 'almmortt', 'almmosst', 'almmostt', 'almmrsst', 'almmrstt', 'almmsstt', 'almorsst', 'almorstt', 'almosstt', 'almrsstt', 'alorsstt', 'ammorsst', 'ammorstt', 'ammosstt', 'ammrsstt', 'amorsstt', 'eeglmmor', 'eeglmmos', 'eeglmmot', 'eeglmmrs', 'eeglmmrt', 'eeglmmss', 'eeglmmst', 'eeglmmtt', 'eeglmors', 'eeglmort', 'eeglmoss', 'eeglmost', 'eeglmott', 'eeglmrss', 'eeglmrst', 'eeglmrtt', 'eeglmsst', 'eeglmstt', 'eeglorss', 'eeglorst', 'eeglortt', 'eeglosst', 'eeglostt', 'eeglrsst', 'eeglrstt', 'eeglsstt', 'eegmmors', 'eegmmort', 'eegmmoss', 'eegmmost', 'eegmmott', 'eegmmrss', 'eegmmrst', 'eegmmrtt', 'eegmmsst', 'eegmmstt', 'eegmorss', 'eegmorst', 'eegmortt', 'eegmosst', 'eegmostt', 'eegmrsst', 'eegmrstt', 'eegmsstt', 'eegorsst', 'eegorstt', 'eegosstt', 'eegrsstt', 'eelmmors', 'eelmmort', 'eelmmoss', 'eelmmost', 'eelmmott', 'eelmmrss', 'eelmmrst', 'eelmmrtt', 'eelmmsst', 'eelmmstt', 'eelmorss', 'eelmorst', 'eelmortt', 'eelmosst', 'eelmostt', 'eelmrsst', 'eelmrstt', 'eelmsstt', 'eelorsst', 'eelorstt', 'eelosstt', 'eelrsstt', 'eemmorss', 'eemmorst', 'eemmortt', 'eemmosst', 'eemmostt', 'eemmrsst', 'eemmrstt', 'eemmsstt', 'eemorsst', 'eemorstt', 'eemosstt', 'eemrsstt', 'eeorsstt', 'eglmmors', 'eglmmort', 'eglmmoss', 'eglmmost', 'eglmmott', 'eglmmrss', 'eglmmrst', 'eglmmrtt', 'eglmmsst', 'eglmmstt', 'eglmorss', 'eglmorst', 'eglmortt', 'eglmosst', 'eglmostt', 'eglmrsst', 'eglmrstt', 'eglmsstt', 'eglorsst', 'eglorstt', 'eglosstt', 'eglrsstt', 'egmmorss', 'egmmorst', 'egmmortt', 'egmmosst', 'egmmostt', 'egmmrsst', 'egmmrstt', 'egmmsstt', 'egmorsst', 'egmorstt', 'egmosstt', 'egmrsstt', 'egorsstt', 'elmmorss', 'elmmorst', 'elmmortt', 'elmmosst', 'elmmostt', 'elmmrsst', 'elmmrstt', 'elmmsstt', 'elmorsst', 'elmorstt', 'elmosstt', 'elmrsstt', 'elorsstt', 'emmorsst', 'emmorstt', 'emmosstt', 'emmrsstt', 'emorsstt', 'glmmorss', 'glmmorst', 'glmmortt', 'glmmosst', 'glmmostt', 'glmmrsst', 'glmmrstt', 'glmmsstt', 'glmorsst', 'glmorstt', 'glmosstt', 'glmrsstt', 'glorsstt', 'gmmorsst', 'gmmorstt', 'gmmosstt', 'gmmrsstt', 'gmorsstt', 'lmmorsst', 'lmmorstt', 'lmmosstt', 'lmmrsstt', 'lmorsstt', 'mmorsstt')


Query for combinations with 7 letters
SELECT * FROM dictionnaire WHERE sorted_letters IN ('aaeeglm', 'aaeeglo', 'aaeeglr', 'aaeegls', 'aaeeglt', 'aaeegmm', 'aaeegmo', 'aaeegmr', 'aaeegms', 'aaeegmt', 'aaeegor', 'aaeegos', 'aaeegot', 'aaeegrs', 'aaeegrt', 'aaeegss', 'aaeegst', 'aaeegtt', 'aaeelmm', 'aaeelmo', 'aaeelmr', 'aaeelms', 'aaeelmt', 'aaeelor', 'aaeelos', 'aaeelot', 'aaeelrs', 'aaeelrt', 'aaeelss', 'aaeelst', 'aaeeltt', 'aaeemmo', 'aaeemmr', 'aaeemms', 'aaeemmt', 'aaeemor', 'aaeemos', 'aaeemot', 'aaeemrs', 'aaeemrt', 'aaeemss', 'aaeemst', 'aaeemtt', 'aaeeors', 'aaeeort', 'aaeeoss', 'aaeeost', 'aaeeott', 'aaeerss', 'aaeerst', 'aaeertt', 'aaeesst', 'aaeestt', 'aaeglmm', 'aaeglmo', 'aaeglmr', 'aaeglms', 'aaeglmt', 'aaeglor', 'aaeglos', 'aaeglot', 'aaeglrs', 'aaeglrt', 'aaeglss', 'aaeglst', 'aaegltt', 'aaegmmo', 'aaegmmr', 'aaegmms', 'aaegmmt', 'aaegmor', 'aaegmos', 'aaegmot', 'aaegmrs', 'aaegmrt', 'aaegmss', 'aaegmst', 'aaegmtt', 'aaegors', 'aaegort', 'aaegoss', 'aaegost', 'aaegott', 'aaegrss', 'aaegrst', 'aaegrtt', 'aaegsst', 'aaegstt', 'aaelmmo', 'aaelmmr', 'aaelmms', 'aaelmmt', 'aaelmor', 'aaelmos', 'aaelmot', 'aaelmrs', 'aaelmrt', 'aaelmss', 'aaelmst', 'aaelmtt', 'aaelors', 'aaelort', 'aaeloss', 'aaelost', 'aaelott', 'aaelrss', 'aaelrst', 'aaelrtt', 'aaelsst', 'aaelstt', 'aaemmor', 'aaemmos', 'aaemmot', 'aaemmrs', 'aaemmrt', 'aaemmss', 'aaemmst', 'aaemmtt', 'aaemors', 'aaemort', 'aaemoss', 'aaemost', 'aaemott', 'aaemrss', 'aaemrst', 'aaemrtt', 'aaemsst', 'aaemstt', 'aaeorss', 'aaeorst', 'aaeortt', 'aaeosst', 'aaeostt', 'aaersst', 'aaerstt', 'aaesstt', 'aaglmmo', 'aaglmmr', 'aaglmms', 'aaglmmt', 'aaglmor', 'aaglmos', 'aaglmot', 'aaglmrs', 'aaglmrt', 'aaglmss', 'aaglmst', 'aaglmtt', 'aaglors', 'aaglort', 'aagloss', 'aaglost', 'aaglott', 'aaglrss', 'aaglrst', 'aaglrtt', 'aaglsst', 'aaglstt', 'aagmmor', 'aagmmos', 'aagmmot', 'aagmmrs', 'aagmmrt', 'aagmmss', 'aagmmst', 'aagmmtt', 'aagmors', 'aagmort', 'aagmoss', 'aagmost', 'aagmott', 'aagmrss', 'aagmrst', 'aagmrtt', 'aagmsst', 'aagmstt', 'aagorss', 'aagorst', 'aagortt', 'aagosst', 'aagostt', 'aagrsst', 'aagrstt', 'aagsstt', 'aalmmor', 'aalmmos', 'aalmmot', 'aalmmrs', 'aalmmrt', 'aalmmss', 'aalmmst', 'aalmmtt', 'aalmors', 'aalmort', 'aalmoss', 'aalmost', 'aalmott', 'aalmrss', 'aalmrst', 'aalmrtt', 'aalmsst', 'aalmstt', 'aalorss', 'aalorst', 'aalortt', 'aalosst', 'aalostt', 'aalrsst', 'aalrstt', 'aalsstt', 'aammors', 'aammort', 'aammoss', 'aammost', 'aammott', 'aammrss', 'aammrst', 'aammrtt', 'aammsst', 'aammstt', 'aamorss', 'aamorst', 'aamortt', 'aamosst', 'aamostt', 'aamrsst', 'aamrstt', 'aamsstt', 'aaorsst', 'aaorstt', 'aaosstt', 'aarsstt', 'aeeglmm', 'aeeglmo', 'aeeglmr', 'aeeglms', 'aeeglmt', 'aeeglor', 'aeeglos', 'aeeglot', 'aeeglrs', 'aeeglrt', 'aeeglss', 'aeeglst', 'aeegltt', 'aeegmmo', 'aeegmmr', 'aeegmms', 'aeegmmt', 'aeegmor', 'aeegmos', 'aeegmot', 'aeegmrs', 'aeegmrt', 'aeegmss', 'aeegmst', 'aeegmtt', 'aeegors', 'aeegort', 'aeegoss', 'aeegost', 'aeegott', 'aeegrss', 'aeegrst', 'aeegrtt', 'aeegsst', 'aeegstt', 'aeelmmo', 'aeelmmr', 'aeelmms', 'aeelmmt', 'aeelmor', 'aeelmos', 'aeelmot', 'aeelmrs', 'aeelmrt', 'aeelmss', 'aeelmst', 'aeelmtt', 'aeelors', 'aeelort', 'aeeloss', 'aeelost', 'aeelott', 'aeelrss', 'aeelrst', 'aeelrtt', 'aeelsst', 'aeelstt', 'aeemmor', 'aeemmos', 'aeemmot', 'aeemmrs', 'aeemmrt', 'aeemmss', 'aeemmst', 'aeemmtt', 'aeemors', 'aeemort', 'aeemoss', 'aeemost', 'aeemott', 'aeemrss', 'aeemrst', 'aeemrtt', 'aeemsst', 'aeemstt', 'aeeorss', 'aeeorst', 'aeeortt', 'aeeosst', 'aeeostt', 'aeersst', 'aeerstt', 'aeesstt', 'aeglmmo', 'aeglmmr', 'aeglmms', 'aeglmmt', 'aeglmor', 'aeglmos', 'aeglmot', 'aeglmrs', 'aeglmrt', 'aeglmss', 'aeglmst', 'aeglmtt', 'aeglors', 'aeglort', 'aegloss', 'aeglost', 'aeglott', 'aeglrss', 'aeglrst', 'aeglrtt', 'aeglsst', 'aeglstt', 'aegmmor', 'aegmmos', 'aegmmot', 'aegmmrs', 'aegmmrt', 'aegmmss', 'aegmmst', 'aegmmtt', 'aegmors', 'aegmort', 'aegmoss', 'aegmost', 'aegmott', 'aegmrss', 'aegmrst', 'aegmrtt', 'aegmsst', 'aegmstt', 'aegorss', 'aegorst', 'aegortt', 'aegosst', 'aegostt', 'aegrsst', 'aegrstt', 'aegsstt', 'aelmmor', 'aelmmos', 'aelmmot', 'aelmmrs', 'aelmmrt', 'aelmmss', 'aelmmst', 'aelmmtt', 'aelmors', 'aelmort', 'aelmoss', 'aelmost', 'aelmott', 'aelmrss', 'aelmrst', 'aelmrtt', 'aelmsst', 'aelmstt', 'aelorss', 'aelorst', 'aelortt', 'aelosst', 'aelostt', 'aelrsst', 'aelrstt', 'aelsstt', 'aemmors', 'aemmort', 'aemmoss', 'aemmost', 'aemmott', 'aemmrss', 'aemmrst', 'aemmrtt', 'aemmsst', 'aemmstt', 'aemorss', 'aemorst', 'aemortt', 'aemosst', 'aemostt', 'aemrsst', 'aemrstt', 'aemsstt', 'aeorsst', 'aeorstt', 'aeosstt', 'aersstt', 'aglmmor', 'aglmmos', 'aglmmot', 'aglmmrs', 'aglmmrt', 'aglmmss', 'aglmmst', 'aglmmtt', 'aglmors', 'aglmort', 'aglmoss', 'aglmost', 'aglmott', 'aglmrss', 'aglmrst', 'aglmrtt', 'aglmsst', 'aglmstt', 'aglorss', 'aglorst', 'aglortt', 'aglosst', 'aglostt', 'aglrsst', 'aglrstt', 'aglsstt', 'agmmors', 'agmmort', 'agmmoss', 'agmmost', 'agmmott', 'agmmrss', 'agmmrst', 'agmmrtt', 'agmmsst', 'agmmstt', 'agmorss', 'agmorst', 'agmortt', 'agmosst', 'agmostt', 'agmrsst', 'agmrstt', 'agmsstt', 'agorsst', 'agorstt', 'agosstt', 'agrsstt', 'almmors', 'almmort', 'almmoss', 'almmost', 'almmott', 'almmrss', 'almmrst', 'almmrtt', 'almmsst', 'almmstt', 'almorss', 'almorst', 'almortt', 'almosst', 'almostt', 'almrsst', 'almrstt', 'almsstt', 'alorsst', 'alorstt', 'alosstt', 'alrsstt', 'ammorss', 'ammorst', 'ammortt', 'ammosst', 'ammostt', 'ammrsst', 'ammrstt', 'ammsstt', 'amorsst', 'amorstt', 'amosstt', 'amrsstt', 'aorsstt', 'eeglmmo', 'eeglmmr', 'eeglmms', 'eeglmmt', 'eeglmor', 'eeglmos', 'eeglmot', 'eeglmrs', 'eeglmrt', 'eeglmss', 'eeglmst', 'eeglmtt', 'eeglors', 'eeglort', 'eegloss', 'eeglost', 'eeglott', 'eeglrss', 'eeglrst', 'eeglrtt', 'eeglsst', 'eeglstt', 'eegmmor', 'eegmmos', 'eegmmot', 'eegmmrs', 'eegmmrt', 'eegmmss', 'eegmmst', 'eegmmtt', 'eegmors', 'eegmort', 'eegmoss', 'eegmost', 'eegmott', 'eegmrss', 'eegmrst', 'eegmrtt', 'eegmsst', 'eegmstt', 'eegorss', 'eegorst', 'eegortt', 'eegosst', 'eegostt', 'eegrsst', 'eegrstt', 'eegsstt', 'eelmmor', 'eelmmos', 'eelmmot', 'eelmmrs', 'eelmmrt', 'eelmmss', 'eelmmst', 'eelmmtt', 'eelmors', 'eelmort', 'eelmoss', 'eelmost', 'eelmott', 'eelmrss', 'eelmrst', 'eelmrtt', 'eelmsst', 'eelmstt', 'eelorss', 'eelorst', 'eelortt', 'eelosst', 'eelostt', 'eelrsst', 'eelrstt', 'eelsstt', 'eemmors', 'eemmort', 'eemmoss', 'eemmost', 'eemmott', 'eemmrss', 'eemmrst', 'eemmrtt', 'eemmsst', 'eemmstt', 'eemorss', 'eemorst', 'eemortt', 'eemosst', 'eemostt', 'eemrsst', 'eemrstt', 'eemsstt', 'eeorsst', 'eeorstt', 'eeosstt', 'eersstt', 'eglmmor', 'eglmmos', 'eglmmot', 'eglmmrs', 'eglmmrt', 'eglmmss', 'eglmmst', 'eglmmtt', 'eglmors', 'eglmort', 'eglmoss', 'eglmost', 'eglmott', 'eglmrss', 'eglmrst', 'eglmrtt', 'eglmsst', 'eglmstt', 'eglorss', 'eglorst', 'eglortt', 'eglosst', 'eglostt', 'eglrsst', 'eglrstt', 'eglsstt', 'egmmors', 'egmmort', 'egmmoss', 'egmmost', 'egmmott', 'egmmrss', 'egmmrst', 'egmmrtt', 'egmmsst', 'egmmstt', 'egmorss', 'egmorst', 'egmortt', 'egmosst', 'egmostt', 'egmrsst', 'egmrstt', 'egmsstt', 'egorsst', 'egorstt', 'egosstt', 'egrsstt', 'elmmors', 'elmmort', 'elmmoss', 'elmmost', 'elmmott', 'elmmrss', 'elmmrst', 'elmmrtt', 'elmmsst', 'elmmstt', 'elmorss', 'elmorst', 'elmortt', 'elmosst', 'elmostt', 'elmrsst', 'elmrstt', 'elmsstt', 'elorsst', 'elorstt', 'elosstt', 'elrsstt', 'emmorss', 'emmorst', 'emmortt', 'emmosst', 'emmostt', 'emmrsst', 'emmrstt', 'emmsstt', 'emorsst', 'emorstt', 'emosstt', 'emrsstt', 'eorsstt', 'glmmors', 'glmmort', 'glmmoss', 'glmmost', 'glmmott', 'glmmrss', 'glmmrst', 'glmmrtt', 'glmmsst', 'glmmstt', 'glmorss', 'glmorst', 'glmortt', 'glmosst', 'glmostt', 'glmrsst', 'glmrstt', 'glmsstt', 'glorsst', 'glorstt', 'glosstt', 'glrsstt', 'gmmorss', 'gmmorst', 'gmmortt', 'gmmosst', 'gmmostt', 'gmmrsst', 'gmmrstt', 'gmmsstt', 'gmorsst', 'gmorstt', 'gmosstt', 'gmrsstt', 'gorsstt', 'lmmorss', 'lmmorst', 'lmmortt', 'lmmosst', 'lmmostt', 'lmmrsst', 'lmmrstt', 'lmmsstt', 'lmorsst', 'lmorstt', 'lmosstt', 'lmrsstt', 'lorsstt', 'mmorsst', 'mmorstt', 'mmosstt', 'mmrsstt', 'morsstt')


Query for combinations with 6 letters
SELECT * FROM dictionnaire WHERE sorted_letters IN ('aaeegl', 'aaeegm', 'aaeego', 'aaeegr', 'aaeegs', 'aaeegt', 'aaeelm', 'aaeelo', 'aaeelr', 'aaeels', 'aaeelt', 'aaeemm', 'aaeemo', 'aaeemr', 'aaeems', 'aaeemt', 'aaeeor', 'aaeeos', 'aaeeot', 'aaeers', 'aaeert', 'aaeess', 'aaeest', 'aaeett', 'aaeglm', 'aaeglo', 'aaeglr', 'aaegls', 'aaeglt', 'aaegmm', 'aaegmo', 'aaegmr', 'aaegms', 'aaegmt', 'aaegor', 'aaegos', 'aaegot', 'aaegrs', 'aaegrt', 'aaegss', 'aaegst', 'aaegtt', 'aaelmm', 'aaelmo', 'aaelmr', 'aaelms', 'aaelmt', 'aaelor', 'aaelos', 'aaelot', 'aaelrs', 'aaelrt', 'aaelss', 'aaelst', 'aaeltt', 'aaemmo', 'aaemmr', 'aaemms', 'aaemmt', 'aaemor', 'aaemos', 'aaemot', 'aaemrs', 'aaemrt', 'aaemss', 'aaemst', 'aaemtt', 'aaeors', 'aaeort', 'aaeoss', 'aaeost', 'aaeott', 'aaerss', 'aaerst', 'aaertt', 'aaesst', 'aaestt', 'aaglmm', 'aaglmo', 'aaglmr', 'aaglms', 'aaglmt', 'aaglor', 'aaglos', 'aaglot', 'aaglrs', 'aaglrt', 'aaglss', 'aaglst', 'aagltt', 'aagmmo', 'aagmmr', 'aagmms', 'aagmmt', 'aagmor', 'aagmos', 'aagmot', 'aagmrs', 'aagmrt', 'aagmss', 'aagmst', 'aagmtt', 'aagors', 'aagort', 'aagoss', 'aagost', 'aagott', 'aagrss', 'aagrst', 'aagrtt', 'aagsst', 'aagstt', 'aalmmo', 'aalmmr', 'aalmms', 'aalmmt', 'aalmor', 'aalmos', 'aalmot', 'aalmrs', 'aalmrt', 'aalmss', 'aalmst', 'aalmtt', 'aalors', 'aalort', 'aaloss', 'aalost', 'aalott', 'aalrss', 'aalrst', 'aalrtt', 'aalsst', 'aalstt', 'aammor', 'aammos', 'aammot', 'aammrs', 'aammrt', 'aammss', 'aammst', 'aammtt', 'aamors', 'aamort', 'aamoss', 'aamost', 'aamott', 'aamrss', 'aamrst', 'aamrtt', 'aamsst', 'aamstt', 'aaorss', 'aaorst', 'aaortt', 'aaosst', 'aaostt', 'aarsst', 'aarstt', 'aasstt', 'aeeglm', 'aeeglo', 'aeeglr', 'aeegls', 'aeeglt', 'aeegmm', 'aeegmo', 'aeegmr', 'aeegms', 'aeegmt', 'aeegor', 'aeegos', 'aeegot', 'aeegrs', 'aeegrt', 'aeegss', 'aeegst', 'aeegtt', 'aeelmm', 'aeelmo', 'aeelmr', 'aeelms', 'aeelmt', 'aeelor', 'aeelos', 'aeelot', 'aeelrs', 'aeelrt', 'aeelss', 'aeelst', 'aeeltt', 'aeemmo', 'aeemmr', 'aeemms', 'aeemmt', 'aeemor', 'aeemos', 'aeemot', 'aeemrs', 'aeemrt', 'aeemss', 'aeemst', 'aeemtt', 'aeeors', 'aeeort', 'aeeoss', 'aeeost', 'aeeott', 'aeerss', 'aeerst', 'aeertt', 'aeesst', 'aeestt', 'aeglmm', 'aeglmo', 'aeglmr', 'aeglms', 'aeglmt', 'aeglor', 'aeglos', 'aeglot', 'aeglrs', 'aeglrt', 'aeglss', 'aeglst', 'aegltt', 'aegmmo', 'aegmmr', 'aegmms', 'aegmmt', 'aegmor', 'aegmos', 'aegmot', 'aegmrs', 'aegmrt', 'aegmss', 'aegmst', 'aegmtt', 'aegors', 'aegort', 'aegoss', 'aegost', 'aegott', 'aegrss', 'aegrst', 'aegrtt', 'aegsst', 'aegstt', 'aelmmo', 'aelmmr', 'aelmms', 'aelmmt', 'aelmor', 'aelmos', 'aelmot', 'aelmrs', 'aelmrt', 'aelmss', 'aelmst', 'aelmtt', 'aelors', 'aelort', 'aeloss', 'aelost', 'aelott', 'aelrss', 'aelrst', 'aelrtt', 'aelsst', 'aelstt', 'aemmor', 'aemmos', 'aemmot', 'aemmrs', 'aemmrt', 'aemmss', 'aemmst', 'aemmtt', 'aemors', 'aemort', 'aemoss', 'aemost', 'aemott', 'aemrss', 'aemrst', 'aemrtt', 'aemsst', 'aemstt', 'aeorss', 'aeorst', 'aeortt', 'aeosst', 'aeostt', 'aersst', 'aerstt', 'aesstt', 'aglmmo', 'aglmmr', 'aglmms', 'aglmmt', 'aglmor', 'aglmos', 'aglmot', 'aglmrs', 'aglmrt', 'aglmss', 'aglmst', 'aglmtt', 'aglors', 'aglort', 'agloss', 'aglost', 'aglott', 'aglrss', 'aglrst', 'aglrtt', 'aglsst', 'aglstt', 'agmmor', 'agmmos', 'agmmot', 'agmmrs', 'agmmrt', 'agmmss', 'agmmst', 'agmmtt', 'agmors', 'agmort', 'agmoss', 'agmost', 'agmott', 'agmrss', 'agmrst', 'agmrtt', 'agmsst', 'agmstt', 'agorss', 'agorst', 'agortt', 'agosst', 'agostt', 'agrsst', 'agrstt', 'agsstt', 'almmor', 'almmos', 'almmot', 'almmrs', 'almmrt', 'almmss', 'almmst', 'almmtt', 'almors', 'almort', 'almoss', 'almost', 'almott', 'almrss', 'almrst', 'almrtt', 'almsst', 'almstt', 'alorss', 'alorst', 'alortt', 'alosst', 'alostt', 'alrsst', 'alrstt', 'alsstt', 'ammors', 'ammort', 'ammoss', 'ammost', 'ammott', 'ammrss', 'ammrst', 'ammrtt', 'ammsst', 'ammstt', 'amorss', 'amorst', 'amortt', 'amosst', 'amostt', 'amrsst', 'amrstt', 'amsstt', 'aorsst', 'aorstt', 'aosstt', 'arsstt', 'eeglmm', 'eeglmo', 'eeglmr', 'eeglms', 'eeglmt', 'eeglor', 'eeglos', 'eeglot', 'eeglrs', 'eeglrt', 'eeglss', 'eeglst', 'eegltt', 'eegmmo', 'eegmmr', 'eegmms', 'eegmmt', 'eegmor', 'eegmos', 'eegmot', 'eegmrs', 'eegmrt', 'eegmss', 'eegmst', 'eegmtt', 'eegors', 'eegort', 'eegoss', 'eegost', 'eegott', 'eegrss', 'eegrst', 'eegrtt', 'eegsst', 'eegstt', 'eelmmo', 'eelmmr', 'eelmms', 'eelmmt', 'eelmor', 'eelmos', 'eelmot', 'eelmrs', 'eelmrt', 'eelmss', 'eelmst', 'eelmtt', 'eelors', 'eelort', 'eeloss', 'eelost', 'eelott', 'eelrss', 'eelrst', 'eelrtt', 'eelsst', 'eelstt', 'eemmor', 'eemmos', 'eemmot', 'eemmrs', 'eemmrt', 'eemmss', 'eemmst', 'eemmtt', 'eemors', 'eemort', 'eemoss', 'eemost', 'eemott', 'eemrss', 'eemrst', 'eemrtt', 'eemsst', 'eemstt', 'eeorss', 'eeorst', 'eeortt', 'eeosst', 'eeostt', 'eersst', 'eerstt', 'eesstt', 'eglmmo', 'eglmmr', 'eglmms', 'eglmmt', 'eglmor', 'eglmos', 'eglmot', 'eglmrs', 'eglmrt', 'eglmss', 'eglmst', 'eglmtt', 'eglors', 'eglort', 'egloss', 'eglost', 'eglott', 'eglrss', 'eglrst', 'eglrtt', 'eglsst', 'eglstt', 'egmmor', 'egmmos', 'egmmot', 'egmmrs', 'egmmrt', 'egmmss', 'egmmst', 'egmmtt', 'egmors', 'egmort', 'egmoss', 'egmost', 'egmott', 'egmrss', 'egmrst', 'egmrtt', 'egmsst', 'egmstt', 'egorss', 'egorst', 'egortt', 'egosst', 'egostt', 'egrsst', 'egrstt', 'egsstt', 'elmmor', 'elmmos', 'elmmot', 'elmmrs', 'elmmrt', 'elmmss', 'elmmst', 'elmmtt', 'elmors', 'elmort', 'elmoss', 'elmost', 'elmott', 'elmrss', 'elmrst', 'elmrtt', 'elmsst', 'elmstt', 'elorss', 'elorst', 'elortt', 'elosst', 'elostt', 'elrsst', 'elrstt', 'elsstt', 'emmors', 'emmort', 'emmoss', 'emmost', 'emmott', 'emmrss', 'emmrst', 'emmrtt', 'emmsst', 'emmstt', 'emorss', 'emorst', 'emortt', 'emosst', 'emostt', 'emrsst', 'emrstt', 'emsstt', 'eorsst', 'eorstt', 'eosstt', 'ersstt', 'glmmor', 'glmmos', 'glmmot', 'glmmrs', 'glmmrt', 'glmmss', 'glmmst', 'glmmtt', 'glmors', 'glmort', 'glmoss', 'glmost', 'glmott', 'glmrss', 'glmrst', 'glmrtt', 'glmsst', 'glmstt', 'glorss', 'glorst', 'glortt', 'glosst', 'glostt', 'glrsst', 'glrstt', 'glsstt', 'gmmors', 'gmmort', 'gmmoss', 'gmmost', 'gmmott', 'gmmrss', 'gmmrst', 'gmmrtt', 'gmmsst', 'gmmstt', 'gmorss', 'gmorst', 'gmortt', 'gmosst', 'gmostt', 'gmrsst', 'gmrstt', 'gmsstt', 'gorsst', 'gorstt', 'gosstt', 'grsstt', 'lmmors', 'lmmort', 'lmmoss', 'lmmost', 'lmmott', 'lmmrss', 'lmmrst', 'lmmrtt', 'lmmsst', 'lmmstt', 'lmorss', 'lmorst', 'lmortt', 'lmosst', 'lmostt', 'lmrsst', 'lmrstt', 'lmsstt', 'lorsst', 'lorstt', 'losstt', 'lrsstt', 'mmorss', 'mmorst', 'mmortt', 'mmosst', 'mmostt', 'mmrsst', 'mmrstt', 'mmsstt', 'morsst', 'morstt', 'mosstt', 'mrsstt', 'orsstt')


Query for combinations with 5 letters
SELECT * FROM dictionnaire WHERE sorted_letters IN ('aaeeg', 'aaeel', 'aaeem', 'aaeeo', 'aaeer', 'aaees', 'aaeet', 'aaegl', 'aaegm', 'aaego', 'aaegr', 'aaegs', 'aaegt', 'aaelm', 'aaelo', 'aaelr', 'aaels', 'aaelt', 'aaemm', 'aaemo', 'aaemr', 'aaems', 'aaemt', 'aaeor', 'aaeos', 'aaeot', 'aaers', 'aaert', 'aaess', 'aaest', 'aaett', 'aaglm', 'aaglo', 'aaglr', 'aagls', 'aaglt', 'aagmm', 'aagmo', 'aagmr', 'aagms', 'aagmt', 'aagor', 'aagos', 'aagot', 'aagrs', 'aagrt', 'aagss', 'aagst', 'aagtt', 'aalmm', 'aalmo', 'aalmr', 'aalms', 'aalmt', 'aalor', 'aalos', 'aalot', 'aalrs', 'aalrt', 'aalss', 'aalst', 'aaltt', 'aammo', 'aammr', 'aamms', 'aammt', 'aamor', 'aamos', 'aamot', 'aamrs', 'aamrt', 'aamss', 'aamst', 'aamtt', 'aaors', 'aaort', 'aaoss', 'aaost', 'aaott', 'aarss', 'aarst', 'aartt', 'aasst', 'aastt', 'aeegl', 'aeegm', 'aeego', 'aeegr', 'aeegs', 'aeegt', 'aeelm', 'aeelo', 'aeelr', 'aeels', 'aeelt', 'aeemm', 'aeemo', 'aeemr', 'aeems', 'aeemt', 'aeeor', 'aeeos', 'aeeot', 'aeers', 'aeert', 'aeess', 'aeest', 'aeett', 'aeglm', 'aeglo', 'aeglr', 'aegls', 'aeglt', 'aegmm', 'aegmo', 'aegmr', 'aegms', 'aegmt', 'aegor', 'aegos', 'aegot', 'aegrs', 'aegrt', 'aegss', 'aegst', 'aegtt', 'aelmm', 'aelmo', 'aelmr', 'aelms', 'aelmt', 'aelor', 'aelos', 'aelot', 'aelrs', 'aelrt', 'aelss', 'aelst', 'aeltt', 'aemmo', 'aemmr', 'aemms', 'aemmt', 'aemor', 'aemos', 'aemot', 'aemrs', 'aemrt', 'aemss', 'aemst', 'aemtt', 'aeors', 'aeort', 'aeoss', 'aeost', 'aeott', 'aerss', 'aerst', 'aertt', 'aesst', 'aestt', 'aglmm', 'aglmo', 'aglmr', 'aglms', 'aglmt', 'aglor', 'aglos', 'aglot', 'aglrs', 'aglrt', 'aglss', 'aglst', 'agltt', 'agmmo', 'agmmr', 'agmms', 'agmmt', 'agmor', 'agmos', 'agmot', 'agmrs', 'agmrt', 'agmss', 'agmst', 'agmtt', 'agors', 'agort', 'agoss', 'agost', 'agott', 'agrss', 'agrst', 'agrtt', 'agsst', 'agstt', 'almmo', 'almmr', 'almms', 'almmt', 'almor', 'almos', 'almot', 'almrs', 'almrt', 'almss', 'almst', 'almtt', 'alors', 'alort', 'aloss', 'alost', 'alott', 'alrss', 'alrst', 'alrtt', 'alsst', 'alstt', 'ammor', 'ammos', 'ammot', 'ammrs', 'ammrt', 'ammss', 'ammst', 'ammtt', 'amors', 'amort', 'amoss', 'amost', 'amott', 'amrss', 'amrst', 'amrtt', 'amsst', 'amstt', 'aorss', 'aorst', 'aortt', 'aosst', 'aostt', 'arsst', 'arstt', 'asstt', 'eeglm', 'eeglo', 'eeglr', 'eegls', 'eeglt', 'eegmm', 'eegmo', 'eegmr', 'eegms', 'eegmt', 'eegor', 'eegos', 'eegot', 'eegrs', 'eegrt', 'eegss', 'eegst', 'eegtt', 'eelmm', 'eelmo', 'eelmr', 'eelms', 'eelmt', 'eelor', 'eelos', 'eelot', 'eelrs', 'eelrt', 'eelss', 'eelst', 'eeltt', 'eemmo', 'eemmr', 'eemms', 'eemmt', 'eemor', 'eemos', 'eemot', 'eemrs', 'eemrt', 'eemss', 'eemst', 'eemtt', 'eeors', 'eeort', 'eeoss', 'eeost', 'eeott', 'eerss', 'eerst', 'eertt', 'eesst', 'eestt', 'eglmm', 'eglmo', 'eglmr', 'eglms', 'eglmt', 'eglor', 'eglos', 'eglot', 'eglrs', 'eglrt', 'eglss', 'eglst', 'egltt', 'egmmo', 'egmmr', 'egmms', 'egmmt', 'egmor', 'egmos', 'egmot', 'egmrs', 'egmrt', 'egmss', 'egmst', 'egmtt', 'egors', 'egort', 'egoss', 'egost', 'egott', 'egrss', 'egrst', 'egrtt', 'egsst', 'egstt', 'elmmo', 'elmmr', 'elmms', 'elmmt', 'elmor', 'elmos', 'elmot', 'elmrs', 'elmrt', 'elmss', 'elmst', 'elmtt', 'elors', 'elort', 'eloss', 'elost', 'elott', 'elrss', 'elrst', 'elrtt', 'elsst', 'elstt', 'emmor', 'emmos', 'emmot', 'emmrs', 'emmrt', 'emmss', 'emmst', 'emmtt', 'emors', 'emort', 'emoss', 'emost', 'emott', 'emrss', 'emrst', 'emrtt', 'emsst', 'emstt', 'eorss', 'eorst', 'eortt', 'eosst', 'eostt', 'ersst', 'erstt', 'esstt', 'glmmo', 'glmmr', 'glmms', 'glmmt', 'glmor', 'glmos', 'glmot', 'glmrs', 'glmrt', 'glmss', 'glmst', 'glmtt', 'glors', 'glort', 'gloss', 'glost', 'glott', 'glrss', 'glrst', 'glrtt', 'glsst', 'glstt', 'gmmor', 'gmmos', 'gmmot', 'gmmrs', 'gmmrt', 'gmmss', 'gmmst', 'gmmtt', 'gmors', 'gmort', 'gmoss', 'gmost', 'gmott', 'gmrss', 'gmrst', 'gmrtt', 'gmsst', 'gmstt', 'gorss', 'gorst', 'gortt', 'gosst', 'gostt', 'grsst', 'grstt', 'gsstt', 'lmmor', 'lmmos', 'lmmot', 'lmmrs', 'lmmrt', 'lmmss', 'lmmst', 'lmmtt', 'lmors', 'lmort', 'lmoss', 'lmost', 'lmott', 'lmrss', 'lmrst', 'lmrtt', 'lmsst', 'lmstt', 'lorss', 'lorst', 'lortt', 'losst', 'lostt', 'lrsst', 'lrstt', 'lsstt', 'mmors', 'mmort', 'mmoss', 'mmost', 'mmott', 'mmrss', 'mmrst', 'mmrtt', 'mmsst', 'mmstt', 'morss', 'morst', 'mortt', 'mosst', 'mostt', 'mrsst', 'mrstt', 'msstt', 'orsst', 'orstt', 'osstt', 'rsstt')


Query for combinations with 4 letters
SELECT * FROM dictionnaire WHERE sorted_letters IN ('aaee', 'aaeg', 'aael', 'aaem', 'aaeo', 'aaer', 'aaes', 'aaet', 'aagl', 'aagm', 'aago', 'aagr', 'aags', 'aagt', 'aalm', 'aalo', 'aalr', 'aals', 'aalt', 'aamm', 'aamo', 'aamr', 'aams', 'aamt', 'aaor', 'aaos', 'aaot', 'aars', 'aart', 'aass', 'aast', 'aatt', 'aeeg', 'aeel', 'aeem', 'aeeo', 'aeer', 'aees', 'aeet', 'aegl', 'aegm', 'aego', 'aegr', 'aegs', 'aegt', 'aelm', 'aelo', 'aelr', 'aels', 'aelt', 'aemm', 'aemo', 'aemr', 'aems', 'aemt', 'aeor', 'aeos', 'aeot', 'aers', 'aert', 'aess', 'aest', 'aett', 'aglm', 'aglo', 'aglr', 'agls', 'aglt', 'agmm', 'agmo', 'agmr', 'agms', 'agmt', 'agor', 'agos', 'agot', 'agrs', 'agrt', 'agss', 'agst', 'agtt', 'almm', 'almo', 'almr', 'alms', 'almt', 'alor', 'alos', 'alot', 'alrs', 'alrt', 'alss', 'alst', 'altt', 'ammo', 'ammr', 'amms', 'ammt', 'amor', 'amos', 'amot', 'amrs', 'amrt', 'amss', 'amst', 'amtt', 'aors', 'aort', 'aoss', 'aost', 'aott', 'arss', 'arst', 'artt', 'asst', 'astt', 'eegl', 'eegm', 'eego', 'eegr', 'eegs', 'eegt', 'eelm', 'eelo', 'eelr', 'eels', 'eelt', 'eemm', 'eemo', 'eemr', 'eems', 'eemt', 'eeor', 'eeos', 'eeot', 'eers', 'eert', 'eess', 'eest', 'eett', 'eglm', 'eglo', 'eglr', 'egls', 'eglt', 'egmm', 'egmo', 'egmr', 'egms', 'egmt', 'egor', 'egos', 'egot', 'egrs', 'egrt', 'egss', 'egst', 'egtt', 'elmm', 'elmo', 'elmr', 'elms', 'elmt', 'elor', 'elos', 'elot', 'elrs', 'elrt', 'elss', 'elst', 'eltt', 'emmo', 'emmr', 'emms', 'emmt', 'emor', 'emos', 'emot', 'emrs', 'emrt', 'emss', 'emst', 'emtt', 'eors', 'eort', 'eoss', 'eost', 'eott', 'erss', 'erst', 'ertt', 'esst', 'estt', 'glmm', 'glmo', 'glmr', 'glms', 'glmt', 'glor', 'glos', 'glot', 'glrs', 'glrt', 'glss', 'glst', 'gltt', 'gmmo', 'gmmr', 'gmms', 'gmmt', 'gmor', 'gmos', 'gmot', 'gmrs', 'gmrt', 'gmss', 'gmst', 'gmtt', 'gors', 'gort', 'goss', 'gost', 'gott', 'grss', 'grst', 'grtt', 'gsst', 'gstt', 'lmmo', 'lmmr', 'lmms', 'lmmt', 'lmor', 'lmos', 'lmot', 'lmrs', 'lmrt', 'lmss', 'lmst', 'lmtt', 'lors', 'lort', 'loss', 'lost', 'lott', 'lrss', 'lrst', 'lrtt', 'lsst', 'lstt', 'mmor', 'mmos', 'mmot', 'mmrs', 'mmrt', 'mmss', 'mmst', 'mmtt', 'mors', 'mort', 'moss', 'most', 'mott', 'mrss', 'mrst', 'mrtt', 'msst', 'mstt', 'orss', 'orst', 'ortt', 'osst', 'ostt', 'rsst', 'rstt', 'sstt')


Query for combinations with 3 letters
SELECT * FROM dictionnaire WHERE sorted_letters IN ('aae', 'aag', 'aal', 'aam', 'aao', 'aar', 'aas', 'aat', 'aee', 'aeg', 'ael', 'aem', 'aeo', 'aer', 'aes', 'aet', 'agl', 'agm', 'ago', 'agr', 'ags', 'agt', 'alm', 'alo', 'alr', 'als', 'alt', 'amm', 'amo', 'amr', 'ams', 'amt', 'aor', 'aos', 'aot', 'ars', 'art', 'ass', 'ast', 'att', 'eeg', 'eel', 'eem', 'eeo', 'eer', 'ees', 'eet', 'egl', 'egm', 'ego', 'egr', 'egs', 'egt', 'elm', 'elo', 'elr', 'els', 'elt', 'emm', 'emo', 'emr', 'ems', 'emt', 'eor', 'eos', 'eot', 'ers', 'ert', 'ess', 'est', 'ett', 'glm', 'glo', 'glr', 'gls', 'glt', 'gmm', 'gmo', 'gmr', 'gms', 'gmt', 'gor', 'gos', 'got', 'grs', 'grt', 'gss', 'gst', 'gtt', 'lmm', 'lmo', 'lmr', 'lms', 'lmt', 'lor', 'los', 'lot', 'lrs', 'lrt', 'lss', 'lst', 'ltt', 'mmo', 'mmr', 'mms', 'mmt', 'mor', 'mos', 'mot', 'mrs', 'mrt', 'mss', 'mst', 'mtt', 'ors', 'ort', 'oss', 'ost', 'ott', 'rss', 'rst', 'rtt', 'sst', 'stt')


Query for combinations with 2 letters
SELECT * FROM dictionnaire WHERE sorted_letters IN ('aa', 'ae', 'ag', 'al', 'am', 'ao', 'ar', 'as', 'at', 'ee', 'eg', 'el', 'em', 'eo', 'er', 'es', 'et', 'gl', 'gm', 'go', 'gr', 'gs', 'gt', 'lm', 'lo', 'lr', 'ls', 'lt', 'mm', 'mo', 'mr', 'ms', 'mt', 'or', 'os', 'ot', 'rs', 'rt', 'ss', 'st', 'tt')

Executed in 0.30566906929016s
Modifié en dernier par Saian le 09 juin 2019, 19:36, modifié 1 fois.
Développeur web depuis + de 20 ans

Eléphant du PHP | 153 Messages

09 juin 2019, 19:31

Wouaaa comment ce fait il que ce soit plus rapide de cette manière ?

PP.php

Eléphant du PHP | 153 Messages

09 juin 2019, 19:39

Temps d'exécution=0.06

Avatar du membre
Mammouth du PHP | 1609 Messages

09 juin 2019, 19:40

Parce que le temps d'exécution de chaque requête n'est pas très différent, peut être de l'ordre de la dizaine de milliseconde (ou quelques dizaines), et que quand tu multiplies cette différence par plusieurs milliers (3000+ requêtes supplémentaires), ben la ça fait une grosse différence. 10ms fois 3000 requêtes, ça fait 30s de plus, alors imagine si l'écart par requête est de l'ordre de la centaine de millisecondes, ça ferait 300s de plus soit 5 minutes. ^^

PS : mon serveur local est une petite tour à 300€ de 2009. ^^

PPS : et la pour le moment dans ton script PP.php tu n'exécutes pas les requêtes, donc forcément c'est beaucoup plus rapide puisque ce qui bouffe la presque totalité du temps d'exécution c'est l'exécution des requêtes.
Avec ton serveur qui semble 6 fois plus rapide que le mien tu devrais pouvoir gérer des mots avec plus de lettres avant d'atteindre la limite du raisonnable en temps de réponse pour l'utilisateur.
Développeur web depuis + de 20 ans

Eléphant du PHP | 153 Messages

09 juin 2019, 20:24

il y a un truc qui m’échappe, a quel moment tu cherches dans sorted_letters ?