假设我有一个数据库:
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%'
但是我不认为可以做到这一点。
答案 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()
所有字符串来处理大小写。