单词包含错误时如何搜索SQL

时间:2018-12-14 08:31:28

标签: sql sql-server

我想执行一个SQL命令。但是,关键字可能包含错误。例如,正确的命令应该是

studentAge

它将返回1。

但是,如果有人执行以下错误命令:

doSomething(studentAge: number) {
  studentAge = this.calculate(studentAge);
  if (studentAge <= 15) {
    alert(studentAge);
  }
}

calculate(studentAge: number): number {
  if (studentAge > 15) { 
    return studentAge; 
  }
  else { 
    return studentAge + 20;
  }
}

如何更改命令以使其仍返回1?

非常感谢。

2 个答案:

答案 0 :(得分:2)

有很多方法可以解决这些问题,但是请记住,这并不是最简单的任务。您正在寻找的是一种模糊搜索算法。

这应该可以帮助您入门:Fuzzy searches in SQL Server (Redgate) 代码项目在这里也有一些有趣的选项:Implementing phonetic name searches

如果您正在寻找更简单但更准系统的解决方案,则应考虑使用SOUNDEXDIFFERENCE(假设您的dbms是MSSQL)。我一直在玩DIFFERENCE,这很有趣,可以立即使用。

答案 1 :(得分:0)

尝试

select id from my_table where SOUNDEX(name) = SOUNDEX('Tomyy')