使用关键字搜索数据库:
有没有办法查询整个 SQLite 数据库表以查找匹配的单词。我试图在关键字中放置一个单词,JTextField
以便它搜索整个Job
表并返回包含匹配单词的行。每一行代表一个独特的工作。
我认为下面的剪断结构不会达到结果
SELECT * FROM Job WHERE Job MATCH 'Microsoft';
有什么快速简单的推荐吗?
我不知道 sqlite 但在 mysql 我们有全文搜索用作
select * from table where match(name) against('value')
只看sqlite中是否有天气全文搜索,我发现这个链接验证它
看来您可以使用您建议的语法,只要它是一个全文搜索表:
http://www.phparch.com/2011/11/full-text-search-with-sqlite/
您可能应该阅读有关 FTS 表的官方 SQLite 文档。请注意,这些是“虚拟”表,因此不会以相同的方式使用数据库文件 - 这可能不是您想要的,但它与您正在寻找的语法相匹配。链接的 SQLite 页面有很好的描述。请注意,FTS 模块是可选的附加模块,可能未安装。
只要您使用占位符,您就不必担心 SQL 注入攻击。看看这个 SO question,特别是代码片段的第二个答案。本质上,您将 a?
放入语句中,然后将要替换的字符串作为参数提供给查询函数。那应该为您进行 SQL 转义。