我在MYSQL中安装了this Levenshtein function。制造商建议使用它:
select levenshtein('butt', 'but') from test;
select levenshtein_ratio('butt', 'but') from test;
我想计算$ search和每个" name"之间的Levenshtein比率。在DB中输入,然后在PHP中回显它。
我怎样才能做到这一点?提前致谢
$search = "Paul"; // The string I want compared to each DB entry
$query = "SELECT name, ??? FROM names"; // What's the MYSQL I need to use?
$response = @mysqli_query($dbc, $query);
while($row = mysqli_fetch_array($response)){
echo "Levenshtein Ratio: ".$row['???'];
echo "<br>";
}
答案 0 :(得分:1)
您需要使用函数return
的别名SELECT levenshtein('butt', 'but') as levenshtein FROM
然后可以从levenshtein
索引访问它。
$row['levenshtein']
另请注意:
除了将数据存储在结果数组的数字索引中之外,mysqli_fetch_array()函数还可以使用结果集的字段名作为键将数据存储在关联索引中。
所以,如果你不想要你可以做的别名:
$row[1]
但是,这对我来说不太可读/可维护。
如果对数组包含的内容有疑问,可以使用print_r
或var_dump
进行检查。这些将为您提供索引和数组的值。
答案 1 :(得分:0)
这个怎么样?
<?php
$search = "Paul"; // The string I want compared to each DB entry
$query = "SELECT name, levenshtein(name, '".mysqli_real_escape_string ($dbc, $search)."') AS result FROM names";
$result = @mysqli_query($dbc, $query);
while($row = mysqli_fetch_array($result)){
echo "Levenshtein Ratio for ".$row['name'].' : '.$row['result']."<br />";
}