小编典典

mysql:查找其字段为``tring''子字符串的行。

sql

有没有一种方法可以写一个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

阅读 182

收藏
2021-04-14

共1个答案

小编典典

如果在文本中找到之一NameNickname必须使用

SELECT *
FROM names
WHERE instr("who is Rohit", Name) > 0
   OR instr("who is Rohit", Nickname) > 0

没有索引可用于此目的,因此大型表可能需要很长时间。

2021-04-14