我在使用SQLite
特别是like
声明时遇到问题。我想从一个表中检索数据,其中varchar
列由用户给出的字符列表组成。
例如:
如果用户传入awnxov
,我希望这些字母匹配,例如won
和wax
可能在我的表格中。
答案 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。
这可能不会很好。这将是对最有可能的所有数据的扫描。根据有多少数据,以及您收到的字母数量,您可能只想创建一个索引并搜索每两个字母组合,并检查代码是否通过。
祝你好运