gpt4 book ai didi

regex - 如何在 SQLite 查询中使用正则表达式?

转载 作者:IT王子 更新时间:2023-10-29 06:16:48 28 4
gpt4 key购买 nike

我想在 sqlite 中使用正则表达式,但我不知道如何。

我的表格有一列包含这样的字符串:“3,12,13,14,19,28,32”现在,如果我键入“where x LIKE '3'”,我还会得到包含 13 或 32 等值的行,但我只想获取该字符串中恰好值为 3 的行。

有人知道怎么解决吗?

最佳答案

正如其他人已经指出的那样,REGEXP 调用一个用户定义的函数,该函数必须首先被定义并加载到数据库中。也许某些 sqlite 发行版或 GUI 工具默认包含它,但我的 Ubuntu 安装没有。解决方案是

sudo apt-get install sqlite3-pcre

/usr/lib/sqlite3/pcre.so 的可加载模块中实现 Perl 正则表达式

为了能够使用它,您必须在每次打开数据库时加载它:

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

或者您可以将该行放入您的 ~/.sqliterc

现在你可以这样查询:

SELECT fld FROM tbl WHERE fld REGEXP '\b3\b';

如果你想直接从命令行查询,你可以使用-cmd开关在你的SQL之前加载库:

sqlite3 "$filename" -cmd ".load /usr/lib/sqlite3/pcre.so" "SELECT fld FROM tbl WHERE fld REGEXP '\b3\b';"

如果您使用的是 Windows,我猜某个地方应该有一个类似的 .dll 文件。

关于regex - 如何在 SQLite 查询中使用正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5071601/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com