Как выбрать все слова, которые могут быть образованы с заданными буквами?

0

У меня есть таблицы, в которых есть словарные слова,

Я хочу получить список слов из db, который может быть сформирован с заданным набором алфавитов.

для этого, что может быть запросом???..

Я думал о наборе каждого символа с использованием substr и сравнения того, является ли его настоящее в списке и длине слова меньше или равно заданному набору алфавитов.

например

если я даю следующий набор алфавитов,

I , L, S, N, N, E

тогда я должен иметь возможность получить слова, подобные следующим:

SIN, NIL, INN, INS, LINEN, LINENS, LINE, SINE, LENS etc.,,

Каким будет запрос?

Теги:

2 ответа

1
SELECT * 
  FROM dictionary 
 WHERE word REGEXP '^[ILSNE]{1,6}$';

Не идеальное решение, но оно может дать вам что-то для работы с

0

Нет способа (я знаю) поиска слова в db, образованного списком букв в mySQL. Самый простой способ сделать это - создать заранее список возможных слов и выбрать из базы данных эти слова (псевдокод):

foreach(word in possible_word_list)
{
    SELECT * FROM dictionary WHERE dictionary.word=word
}

и создать возможный список слов:

function get_possible_word_list(letters_list)
{
    word_list = array();
    foreach(letter in letters_list)
    {
        word_list.add( letter + get_possible_word_list(letters_list.remove(letter));
    }
    return word_list;
}

Или что-то в этом роде.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню