如何检查字符串是否在数据库中包含值?

时间:2019-05-04 06:20:36

标签: sqlite

假设我有一个数据库:

John Smith - 103

Jane Doe - 287

Mike Smith - 371

我有一个像这样的字符串:

"Let's see the value of John Smith in the database"

我需要一种方法来检查此字符串中是否包含任何名称,并获取与该名称关联的值。

如何在sqlite中做到这一点?

这与链接的问题不同,是相反的。我有字符串,并且正在寻找与之匹配的模式。

如果我这样做了:

SELECT *
FROM TABLE
WHERE column LIKE '%string%'

我什么也不会得到。

应该是:

SELECT *
FROM TABLE
WHERE string LIKE '%column%'

但是我不认为可以做到这一点。

1 个答案:

答案 0 :(得分:1)

您可以使用sqlite instr

  

instr(X,Y)

     

instr(X,Y)函数在字符串X中找到字符串Y的第一个匹配项,并返回前一个字符的数量加1,或者   如果在X中找不到Y,则返回0。或者,如果X和Y都是BLOB,则   instr(X,Y)返回的字节数比第一个字节多   Y的出现;如果X内的任何地方都没有Y,则返回0。   instr(X,Y)的参数X和Y为非NULL,因此不是BLOB   两者都解释为字符串。如果X或Y为NULL   instr(X,Y),则结果为NULL。

类似:

SELECT * from table
WHERE instr("Let's see the value of John Smith in the database",name) <> 0

您可能希望lower()upper()所有字符串来处理大小写。