【发布时间】:2011-05-24 23:13:25
【问题描述】:
我有一个查询,我正在尝试针对单词数据库运行。查询必须返回一个包含另一个单词和给定字母的单词。它在 PHP 和 mySQL 中。
例如:
Word Given: Cruel
Letters Given: abcdty
在数据库中,我需要根据给定的字母和给定的词找到“残酷”这个词。它需要双向工作。所以如果我有字母的“atni”,如果它存在于数据库中,就会出现“Anticruel”。
我有一半的工作,但给出的结果不正确:
SELECT word
FROM words
WHERE LOCATE( "cruel", word ) >0
AND word != "cruel"
AND word
REGEXP '[ybilteh]'
此查询的结果集:
"anticruelty"
"crueler"
"cruelest"
"crueller"
"cruellest"
"cruelly"
"cruelness"
"cruelnesses"
"cruelties"
"cruelty"
更新!!!
感谢本杰明·莫雷尔,这离我们越来越近了。
这个查询:
SELECT word
FROM words
WHERE LOCATE( "t", word ) >0
AND word != "t"
AND word
REGEXP '^[ybilteh]*t[ybilteh]*$'
LIMIT 0 , 30
正确查找单词。但也包括带有双字母的单词。比如“甜菜”。当只有 1 个“e”可用时。
【问题讨论】:
-
你在做一个类似拼字游戏的游戏吗?
-
也许吧?还没做完。但它来了。
-
该解决方案仅使用纯 MySQL 非常复杂,是否可以选择使用 MySQL 过滤最简单的部分并使用 PHP 过滤其余部分?
-
@Alix - 绝对。我只需要它工作。