问题标签 [mysql-json]

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 投票
2 回答
4230 浏览

mysql - MySQL JSON 按 id 提取单个值

我有一个数据库,列中有一个 JSON 数组extra_fields。我需要通过 id 提取一个值。

JSON 看起来像这样,尽管每行的对象数量是随机的:

我可以提取一个 id 数组:

我可以使用以下方法提取一组值:

我可以在第 n 个零序对象位置提取单个值:

但问题是对象数量可变,我特别需要对象 id = 11 的值。 JSON_EXTRACT 似乎不支持过滤,因为 JSONPATH 的每个变体似乎都失败了。$..[?(@.id=11)].value作为 JSONPATH 工作,但这(和许多变体)失败:

SELECT extra_fields->"$.[?(@.id=11)].value" FROM esqt7_k2_items; #FAILS

这是一个迁移项目,JSON 内容正是 Joomla 选择实现其额外字段的方式。如果你问我,有点痛苦。

0 投票
1 回答
1736 浏览

mysql - 按存储对象数组的 JSON 列过滤行

我有下表,它被称为products我省略了我不需要的列:

我有两个 JSON 列,我想在同一个查询中使用它们来过滤产品及其变体。两列具有相同的结构,类似于存储产品可能具有的自定义字段:

要过滤的查询的重要属性是字段的名称和namevalue该特定产品关联的值,在上面的示例中,我们有一个可以在外部使用的手工产品。

如果用户想要过滤产品,他可能会发送参数,{"External use": "false", "Handmade":"true"}但现在我只能过滤一个属性,目前value如果我通过true它将带来所有value在任何字段中设置为 true 的产品。

我想知道是否可以为AND这些对象数组中的同一个 JSON 对象应用条件或类似的东西,所以我传递的参数与我需要的字段有关。

0 投票
1 回答
956 浏览

php - PDO-MySQL:布尔值在准备好的语句绑定上转换为 1 或空字符串

我正在尝试将一些布尔值插入 JSON 类型的列。

这会导致执行以下 SQL。

有没有办法让 PDO 将它们转换为 SQL 语句TRUEFALSE在 SQL 语句中,然后将它们转换为正确的 JSON 布尔值。

编辑:

我现在尝试使用bindParamandbindValue而不是execute. 这些并不能解决问题,因为 PDO 仍将布尔值转换为0or 1

编辑:看起来有一个11 岁的错误报告,仍然没有得到解决。

0 投票
1 回答
573 浏览

mysql - 无法使用 JSON_CONTAINS 进行搜索

我正在使用以下查询来搜索名为“JavaScript”的 json 值

当我运行查询时,我得到 0 个结果

这是我正在使用的插入命令

这是我正在使用的搜索查询:

任何帮助将非常感激!

0 投票
1 回答
4900 浏览

mysql - mysql JSON_SET 或 JSON_INSERT 函数将对象插入嵌套对象(如果存在)

我有一个 json 类型的列config,我想在其中添加一个键值对,最终看起来像:

我遇到的问题是,当我想在功能中插入实用程序对象时,我要么覆盖divisions键值,要么返回NULL并且utilities没有插入对象。

此外,该config列可能是NULL或最初只是一个空的{}

此查询将检查 NULL 或空 {} 以及键是否存在,但如果它已经存在则features导致覆盖:features

除非该列已经包含以下内容,否则这可以正常工作:

divisionsutilities对象覆盖。

所以我正在尝试 JSON_INSERT 查询;从我从 mysql json 函数文档中收集到的内容应该可以工作,但它返回 null,我不明白为什么:

0 投票
1 回答
1083 浏览

mysql - mysql 我们可以在不更改最大数据包大小的情况下更改最大默认 JSON 列长度吗?

我在这里读到最大允许 json 为 1 GB。

我们能否以某种方式更改此默认行为以将此 MAX 限制减少到几 MB 或具有 json 数据类型的特定表列中的任何其他值?

0 投票
0 回答
720 浏览

mysql - 使用 MySQL 时选择 JSON 哪个子键是数字

结果是:

结果

如何选择403就像select props->>"$.redirect.403" from jsonDoc

谢谢

0 投票
0 回答
1025 浏览

json - 将带有 OPENJSON (SQL 2016) 的 JSON 文件内容插入表中,其中一列不属于 JSON 文件

只要 Json 的内容与表匹配,使用 OPENJSON 在 SQL 表中执行插入和存储 JSON 似乎非常简单。

当我要插入到表中的值之一不是 JSON 字符串的一部分时,问题就开始了。

IE 在下面的场景中,我试图将日期作为硬编码变量@createdON 传递,但我看到以下错误:

[代码:207,SQL 状态:42S22] 列名“20171128”无效。

基本上,我正在尝试使用 JSON 中未包含的日期值来丰富我的 JSON 文件的导入。

顺便说一句更换;

声明 @createdON VARCHAR(MAX) 并设置 createdON = "20171128"

声明 @createdON DATETIME 并选择 createdON = GETDATE()

使这是一个正确的查询。很高兴知道为什么?

0 投票
2 回答
8206 浏览

mysql - MySQL 嵌套 JSON 列搜索和提取子 JSON

我有一个authors带有列的 MySQL 表idname并且published_books. 在此,published_books是一个 JSON 列。有了样本数据,

如您所见,该published_books列具有嵌套的 JSON 数据(一层)。JSON 将具有动态 UUID 作为键,其值将作为 JSON 的书籍详细信息。

我想在books某些条件下搜索并单独提取那些书籍 JSON 数据以作为结果返回。

我写的查询,

此查询执行搜索并返回整个published_booksJSON。但我只想要那些 JSON 书。

预期的结果,

0 投票
3 回答
693 浏览

mysql - 如何在 MySQL 中的 JSON 数组内的元素中提取特定属性的所有值?

我将以下数据存储在 MySQL 表的列中,该表是“json”数据类型(MySQL v5.7.9)

我需要一个 MySQL 查询,它将返回所有“标题”值,即相似 1、相似 2 和相似 3 等等