问题标签 [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.
json - JSON extract\set 的 SQLite JSON1 示例
SQLite 现在有一个实验性的 JSON1 扩展来处理 JSON 字段。可供选择的函数看起来很有希望,但我不知道如何在查询的上下文中使用它们。
假设我创建了下表:
该文档显示了如何json_each
在查询中使用,但所有其他功能都缺少一些上下文文档。
有 SQLite 经验的人能否提供一些如何使用的示例:
json_extract
json_set
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
json - 在 Sqlite 中使用 json_extract 作为带有冒号 (:) 的键的问题
我有一个示例数据集,如下所示
我将其导入 sqlite3 3.13 进行一些分析(.mode csv,.headers on,.separator '|',.import file.csv dev)
如您所见,第二个字段是 json 格式的数据,键都具有:在名称中,我认为这是我的问题的一部分。
我想选择列类型匹配测试的所有行,并从属性列中的 json 打印出 devpow:battery 值
我已经尝试了以下所有方法,但无法正常工作
以及以上的不少渗透。任何帮助是极大的赞赏。
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 数据库并运行以下查询来检查已使用哪些编译选项。
node.js - 错误:没有这样的功能:安装了 JSON1 的 SQLite 中的 json_each
我已经通过 brew 安装了带有 JSON1 的 SQLite3:
版本:
运行查询时,某些功能可以正常工作,例如json_extract
:
但是,当我尝试使用json_each
orjson_tree
时,它失败了:
表中的Body
字段Event
是有效的 JSON 字符串:
并且labels
值是一个数组。
我已经阅读了文档(并查看了json_each 示例),搜索了互联网,但找不到启用此功能的任何其他要求。
我做错了什么,或者:我如何从 json_each/json_tree 中获益?
sql - Sqllite:从 json 字符串中搜索值
我的表名users
包含列名user_email
。user_email
具有 json 格式数据的列,如下所示。
我想仅在值中从 json 字符串中查询该搜索email
值。
我已经尝试过 REGEXP,但 sqlite 不支持。
这可以使用LIKE
运算符或其他东西吗?
c - 如何将 json 数组索引设置为 sqlite3 中的绑定参数?
我正在使用 SQLite3 的C - API和json1扩展。在数据库中,整数列表存储为json_array。我想使用json_extract函数从 json_array 创建一个 C 整数数组。我通过增加 SQL 语句中的索引来循环遍历 json 数组中的每个值。例如,考虑:
在 C 程序中,我目前正在创建一个字符串来表示命令的单引号部分'$[index]'
,作为绑定参数,如下面的代码片段所示。
我可以或应该避免使用sprintf
来设置索引吗?或者,这是一个可以接受的解决方案吗?
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 中的软件绑定?
json - 如何将 JSON 文件转换为 SQLite 数据库
如果我有一些示例数据,如何将其放入 SQLite(最好是完全自动化的)?