问题标签 [sqlite-json1]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
31335 浏览

json - JSON extract\set 的 SQLite JSON1 示例

SQLite 现在有一个实验性的 JSON1 扩展来处理 JSON 字段。可供选择的函数看起来很有希望,但我不知道如何在查询的上下文中使用它们。

假设我创建了下表:

文档显示了如何json_each在查询中使用,但所有其他功能都缺少一些上下文文档。

有 SQLite 经验的人能否提供一些如何使用的示例:

  • json_extract
  • json_set
0 投票
0 回答
883 浏览

php - 如何在 MAMP 中升级 SQLite 以使用 JSON1 扩展?

我正在使用最新的 OS X El Capitan。我的 MAMP 是 3.5 PRO。我在其中运行 PHP 7.0.0。您可以在此处查看 PHP 的信息。

我认为 SQLite 默认在 OS X 中可用。但是这个 SQLite 在 OS X 中的版本是 3.8。JSON1 扩展仅在 SQLite 3.9 版本后可用。

所以首先,我尝试升级它。我为 OS X 下载了预编译的二进制文件(3.12.1)并替换了sqlite3文件/etc/bin/夹中的文件。我认为它已经完成,因为我/usr/bin/sqlite3直接运行检查控制台。您可以在下面看到结果。版本升级到最新版本。

在此处输入图像描述

然后我尝试检查 PHP 中的 SQLite 版本。

不幸的是它说;

然后我就卡在了这一点上。接下来我可以在哪里看?

更新

我通过自制软件成功安装了 SQLite 3.12.1。

brew install sqlite3 --with-json1 --with-ft5

现在我可以在控制台中运行 json 函数了。但仍然无法通过 PHP 连接 API。

Warning: SQLite3::exec(): no such function: json in /Users/Fehmi/Data/root/sqlite/info.php on line 17

0 投票
1 回答
653 浏览

json - 在 Sqlite 中使用 json_extract 作为带有冒号 (:) 的键的问题

我有一个示例数据集,如下所示

我将其导入 sqlite3 3.13 进行一些分析(.mode csv,.headers on,.separator '|',.import file.csv dev)

如您所见,第二个字段是 json 格式的数据,键都具有:在名称中,我认为这是我的问题的一部分。

我想选择列类型匹配测试的所有行,并从属性列中的 json 打印出 devpow:battery 值

我已经尝试了以下所有方法,但无法正常工作

以及以上的不少渗透。任何帮助是极大的赞赏。

0 投票
2 回答
15607 浏览

python - Python - SQLite JSON1 加载扩展

我想在 Python 中为 SQLite 使用 json1 扩展。根据官方文档,它应该是一个可加载的扩展。我从源代码中得到了 json1.c 文件,并按照官方说明将其编译为 json1.so ,没有任何错误。

当我尝试根据sqlite3 文档在 Python 2.7.12(和 3.5.2)中加载扩展时出现了问题。

我收到以下回溯错误消息。我从包含 json1.so 文件的文件夹中运行 Python 解释器。尽管由于最后一个冒号似乎应该有更多信息,但以下是完整的错误消息。

在 Python 中实际上不可能使用 json1 作为可加载扩展吗?正如Charles Leifer在这篇博文中所解释的那样,我唯一的选择是重新编译 SQLite、pysqlite2 等吗?

编辑:

事实证明,我收到了错误,因为我的机器已经启用了这个和其他扩展。启用已启用扩展的操作触发了错误。到目前为止,我可以访问的所有 linux 计算机都已经在 Python 附带的 SQLite 中启用了 json1 和 fts5 扩展。您可以通过连接到 SQLite 数据库并运行以下查询来检查已使用哪些编译选项。

0 投票
2 回答
5579 浏览

node.js - 错误:没有这样的功能:安装了 JSON1 的 SQLite 中的 json_each

我已经通过 brew 安装了带有 JSON1 的 SQLite3:

版本:

运行查询时,某些功能可以正常工作,例如json_extract

但是,当我尝试使用json_eachorjson_tree时,它失败了:

表中的Body字段Event是有效的 JSON 字符串:

并且labels值是一个数组。

我已经阅读了文档(并查看了json_each 示例),搜索了互联网,但找不到启用此功能的任何其他要求。

我做错了什么,或者:我如何从 json_each/json_tree 中获益?

0 投票
2 回答
9231 浏览

sql - Sqllite:从 json 字符串中搜索值

我的表名users包含列名user_emailuser_email具有 json 格式数据的列,如下所示。

我想仅在值中从 json 字符串中查询该搜索email值。

我已经尝试过 REGEXP,但 sqlite 不支持。

这可以使用LIKE运算符或其他东西吗?

0 投票
1 回答
440 浏览

c - 如何将 json 数组索引设置为 sqlite3 中的绑定参数?

我正在使用 SQLite3 的C - APIjson1扩展。在数据库中,整数列表存储为json_array。我想使用json_extract函数从 json_array 创建一个 C 整数数组。我通过增加 SQL 语句中的索引来循环遍历 json 数组中的每个值。例如,考虑:

在 C 程序中,我目前正在创建一个字符串来表示命令的单引号部分'$[index]',作为绑定参数,如下面的代码片段所示。

我可以或应该避免使用sprintf来设置索引吗?或者,这是一个可以接受的解决方案吗?

0 投票
0 回答
133 浏览

macos - 在 SQLite 上为 JSON1 扩展编译“架构 x86_64”时出现问题

有很多线程有类似的问题,但许多处理 c++ 代码并有 c++ 解决方案。但是,根据我在各个线程上收集的信息,当 gcc 尝试链接库时,我可能会丢失一个库。

我不知道我需要包含哪个库才能成功构建 JSON1。

对于加载 SQLite 扩展,他们在Mac上的官方说明是:

所以我做了:

我错过了什么?

这是我的 gcc 详细信息,如果有帮助的话:

0 投票
1 回答
745 浏览

sqlite - 升级 sqlite3 到自定义包

我有一台运行 centos7 的服务器,使用 Yum/rpm 安装了 sqlite3。默认情况下,sqlite 包没有使用我需要的扩展 JSON1 进行编译。可以在使用标志编译包时启用扩展-DSQLITE_ENABLE_JSON1经过一整天的工作后,我设法找到了 RPM 源文件,更新了规范使其使用标志进行编译,并将其重新编译成一个新包。现在我可以运行rpm -U current-sqlite-package.rpm custom-sqlite-package.rpm并升级到我的自定义包。yum 和 rpm 都说这个包,但是当我运行/user/bin/sqlite3 --version它时它仍然是旧版本。

如何升级到我的自定义包?yum/rpm 软件包如何与 /user/bin 中的软件绑定?

0 投票
4 回答
29710 浏览

json - 如何将 JSON 文件转换为 SQLite 数据库

如果我有一些示例数据,如何将其放入 SQLite(最好是完全自动化的)?