人们对如何搜索同一个词有不同的看法。
例如Tri Valley,Trivalley,Tri Valley(甚至可能拼写错误)
目前搜索是这样进行的
SELECT * FROM `table` WHERE `SchoolDistrict` LIKE '%tri valley%';
有没有一种简单的方法可以不用写出三个类似的语句就说“空格或不空格”?
似乎很容易做到:
SELECT * FROM `table` WHERE `SchoolDistrict` LIKE '%tri%valley%';
但这只在初始输入为“tri valley”或“tri valley”时有效如果初始输入为“trivalley”,我不知道该放在哪里(理论上,也就是说,实际上,我知道,因为我们只看了大约十几个不同的学区,但我正在寻求解决更大的问题)
最佳答案
如果你有很多拼写错误,你可以考虑使用SOUNDEX,或者SOUNDS LIKE。如果您有很多行(或者即使您没有),最好将SOUNDEX
的输出存储在一个额外的列中。
为了准确起见,我还建议引入一个带有权威学区列表的单独表,并运行一个查询来查找那些不在该列表中的学区。