如何使用SQLite中的字符列表匹配字符串

时间:2015-05-23 13:17:07

标签: regex sqlite sql-like

我在使用SQLite特别是like声明时遇到问题。我想从一个表中检索数据,其中varchar列由用户给出的字符列表组成。

例如:

如果用户传入awnxov,我希望这些字母匹配,例如wonwax可能在我的表格中。

1 个答案:

答案 0 :(得分:1)

根据您的评论,您希望提供一个字母列表并找到匹配的所有字词。您无法使用LIKE

执行此操作

但是,您可以使用REGEXP。但要使用它,您需要安装regexp lib或编写自己的regexp函数并提供回调。

如果您使用的是Ubuntu:

sudo apt-get install sqlite3-pcre

或者您可以从github页面here安装。

然后当你运行sqlite时,你需要执行加载regexp()函数:

.load /usr/lib/sqlite3/pcre.so

(或者lib的任何地方)

最后,您可以执行以下操作:

SELECT word
FROM   table
WHERE  word REGEXP '^[awnxov]+$'

您认为匹配的任何其他PCRE。

这可能不会很好。这将是对最有可能的所有数据的扫描。根据有多少数据,以及您收到的字母数量,您可能只想创建一个索引并搜索每两个字母组合,并检查代码是否通过。

祝你好运