如何在SQLite中搜索子字符串?

T.T*_*.T. 34 sql database sqlite database-design

什么是在SQLite中搜索子字符串的最有效方法?

我正在看LIKE运算符.

我有正确的想法吗?这对你有用吗?

http://www.sqlite.org/lang_expr.html

谢谢.

Gra*_*erB 44

Yepper,使用Like. Select id from sometable where name like '%omm%'会返回名称列中任何位置都有'omm'的行.

  • 有一个ESCAPE关键字,允许您定义转义字符,以便您可以查询%或_.请参阅:http://www.sqlite.org/lang_expr.html因此,您可以执行类似"从mytable中选择id,其名称为'%somename\%%'escape'\' (4认同)

Jer*_*fin 13

可以使用LIKE,但是如果你要搜索的模式开始时它会变得非常'%'- 也就是说,如果你要查找的子字符串不一定在字段的开头.

如果您需要进行此类搜索,请考虑使用FTS3,这使得全文搜索更加高效.


Ale*_*nov 5

自从提出和回答问题以来已经过去了很多年,并且在 2012 年 SQLite 3.7.15 版引入了一个函数instr( string, substring)- 返回字符串中子字符串的位置,如果找不到,则返回 0。( https://www.techonthenet.com/sqlite/functions/instr.php )

sqlite> SELECT instr('TechOnTheNet.com', 'T');
结果:1

我没有针对 进行基准测试LIKE,但恕我直言可能会更快。