我有这个脚本:
$db = mysql_connect($hostname, $db_user, $db_password);
mysql_select_db($database,$db) or die( "Unable to select database");
mysql_query("set names 'utf8'");
$wordy = "pate";
$query = mysql_query("SELECT DISTINCT * FROM $db_table WHERE word LIKE '[pate]' ORDER BY word DESC");
$num = mysql_numrows($query); $i=0;
while ($i < $num) {
$word = mysql_result($query,$i,"word");
echo $word." ";
$i++;
}
$db_table
包含英文单词。我想要回应所有可能的字谜;在这种情况下,它应该回显tape pate peat
。我可以使用什么查询来执行此操作?
http://msdn.microsoft.com/en-us/library/ms179859.aspx&lt; - 这是一个描述
答案 0 :(得分:1)
我认为首先你必须重新排列单词中的所有字母以形成一个数组
然后执行如下的SQL查询:
SELECT DISTINCT * FROM $db_table WHERE word in ($array ) ORDER BY word DESC
得到了另一个想法:
你可以做点什么......SELECT DISTINCT * FROM $db_table WHERE word like '%$wordy[0]%' AND like '%$wordy[1]%' AND like '%$wordy[2]%' AND like '%$wordy[4]%' ORDER BY word DESC
我可以建议您使用
的评论length(word)= strlen($ wordy)
答案 1 :(得分:1)
如果您可以修改包含字典的表,请运行一个脚本,该脚本为每个条目添加一个字段,该字段包含按字母顺序包含的字母。然后,您可以按字母顺序将字母放入您正在搜索的单词中,并查找匹配项。
胶带,头和泥炭在按字母顺序排列时都会看起来像“aept”,然后就可以了
$query = mysql_query("SELECT * FROM $db_table WHERE alpha = 'aept' ORDER BY word DESC");