有没有一种方法可以写一个sql查询来查找所有行,其中字段值是给定字符串的子字符串。
例子:
table names Name | Nickname rohit iamrohitbanga banga rohitnick sinan unur
查询应该是这样的
select * from names where Name is a substring of "who is rohit"; // to get first row select * from names where Nickname is a substring of "who is rohitnick"; // to get second row select * from names where Name is a substring of "who is unur and banga" or Nickname is substring of "who is unur and banga"; // to get second and third row
这怎么可能?
如果不可能的话,那么我将不得不在Java中实现该行为。我正在使用jdbc:mysql驱动程序连接到数据库。
更新 您的解决方案工作
现在有点曲折。如果我们要检查字段的子字符串是否作为我们指定的字符串的子字符串出现。
select * from names where Name is a substring of "who is sina"; // to get third row
如果在文本中找到之一Name或Nickname必须使用
Name
Nickname
SELECT * FROM names WHERE instr("who is Rohit", Name) > 0 OR instr("who is Rohit", Nickname) > 0
没有索引可用于此目的,因此大型表可能需要很长时间。