我有一个表,比如tblName,它有字段和值
| ID | Name |
| 1 | Technical University |
| 2 | XYZ Lab Ltd. |现在,我必须将Name列与以下输入值匹配:
1- tech univ
2- tech universities
3- xyz Labs我无法从表中写入查询以获得结果。如果我将Name列与输入值、技术大学、或技术大学相匹配,那么查询应该从tblName响应结果集技术大学。
请建议一下。
谢谢你的进阶。
发布于 2014-09-30 08:32:34
嗯,您可以做一件事,将名称映射到不同的名称,例如
ID I_ID NAME
1 1 tech university
2 1 tech uni
3 1 tech univs因此,这个表将是搜索查询的链接,I_ID是一个外键,它引用主表中的ID。我想这可以解决您的问题,您可以为一个名称定义多个名称。
此外,为了更有效地使用正则表达式,您必须为此开发一个自定义函数,尽管REGEXP的通用用法如下所示
SELECT id, name FROM tblName WHERE name REGEXP 'tech'有关REGEXP的更多信息,请参考http://www.tutorialspoint.com/mysql/mysql-regexps.htm
发布于 2014-09-30 08:41:56
对于简单的情况,当需要匹配字符串开始时,可以使用
select * from table where field LIKE 'Hello %'%符号是通配符。
但是,举个例子,我想看看一些全文索引解决方案,这些解决方案都是围绕mysql提供的。
在mysql中,我们使用Levenstein距离函数,您可以使用它构建自己的mysql并扩展mysql。
这里有一些例子,但我不知道它是否会起作用
https://github.com/jmcejuela/Levenshtein-MySQL-UDF
https://github.com/jmcejuela/Levenshtein-MySQL-UDF/blob/master/levenshtein.c
找到一个应该是纯SQL的
http://openquery.com.au/blog/levenshtein-mysql-stored-function
发布于 2014-09-30 09:00:52
测试一下它可能会有帮助
SELECT * FROM tblNAME WHERE Name LIKE "%name%";https://stackoverflow.com/questions/26116101
复制相似问题