显示类似的单词


Display similar words

我有一个包含两个字段的表,私有和个人名称,我需要创建一个允许搜索这些名称的搜索页面。问题是我也需要检测打字错误。

例如:搜索Jonh会找到John。

因此,我试图用LIKE获得结果,然后将字符串拆分为个字符,并计算JS循环中相同的字母数量。因此,如果4个或更多个字符相同,我将打印字符串。但出于某种原因,这并不总是有效的,也许有更好的方法可以做到这一点?

SELECT first_name FROM Employees WHERE first_name like '%{$first_name}%'

然后JS:

var counted = 0;
var inputFromUser = "some input".split('');
var resultCharsArray = "<?php echo $result;?>".split('');
for (var i = 0; i < inputFromUser.length; i++) {
    if ($.inArray(inputFromUser[i],resultCharsArray) { counted++; }
}
if (counted >= 4) {
    console.log("<?php echo $result;?>");
}

是的,有更好的方法。

你可以使用SOUNDS LIKE。然后你就不需要运行任何JS了。

SELECT first_name FROM Employees WHERE first_name SOUNDS LIKE 'Jonh'