У меня есть таблицы, в которых есть словарные слова,
Я хочу получить список слов из db, который может быть сформирован с заданным набором алфавитов.
для этого, что может быть запросом???..
Я думал о наборе каждого символа с использованием substr и сравнения того, является ли его настоящее в списке и длине слова меньше или равно заданному набору алфавитов.
например
если я даю следующий набор алфавитов,
I , L, S, N, N, E
тогда я должен иметь возможность получить слова, подобные следующим:
SIN, NIL, INN, INS, LINEN, LINENS, LINE, SINE, LENS etc.,,
Каким будет запрос?
SELECT *
FROM dictionary
WHERE word REGEXP '^[ILSNE]{1,6}$';
Не идеальное решение, но оно может дать вам что-то для работы с
Нет способа (я знаю) поиска слова в 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;
}
Или что-то в этом роде.