问题标签 [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 投票
11 回答
45038 浏览

php - JSON 与数据库中的序列化数组

在 MySQL 数据库中存储 JSON 数据与在序列化数组中存储的优缺点是什么?

0 投票
2 回答
56043 浏览

mysql - 我应该在 MySQL 中为 JSON 使用 blob 还是 text?

我打算json_encoded在我的数据库中存储一个字符串。我不能准确地说出它的长度,但我很确定它会很长。我关心的是我将为此使用哪种字段类型,是它blob还是text

我更喜欢可以通过快速搜索尽可能节省空间的那个,无论如何我还有其他列我应该只索引。

0 投票
10 回答
219753 浏览

mysql - 如何在 MySQL 中搜索 JSON 数据?

我已经在 mysql DB 中插入了json encoded数据类型的记录,现在我必须在json encoded数据中进行搜索,但我无法使用以下 MySql 查询获取正确的数据。

查询结果键等于“1”,值是除“3”以外的任何值

我的数据是:

0 投票
4 回答
4353 浏览

php - 表上的 PHP PDO 查询错误具有 json 数据类型(MySQL 5.7.8-rc)

我正在 mysql 5.7 上尝试新的 json 数据类型。当我使用本机 php mysql 查询时,它工作正常,但是当我使用 PDO 查询数据时,它显示此错误:

错误:异常 'PDOException' 带有消息 'SQLSTATE[HY000]:一般错误:2036 ' in /some_folder/pdo.php:12 堆栈跟踪:#0 /some_folder/pdo.php(12): PDO->query('select * 来自 table_has_json_datatype') #1 {main}

你们知道如何解决这个问题吗?

谢谢。

用我的简单测试代码更新:

0 投票
2 回答
104160 浏览

mysql - 如何更新 MySQL 5.7.10 中的 JSON 数据类型列?

我最近开始使用 MySQL 5.7.10,我非常喜欢原生 JSON 数据类型。

但是在更新 JSON 类型值时遇到了问题。

问题:

下面是表格格式,这里我想在表格的 JSONdata列中再添加 1 个键t1。现在我必须获取值修改它并更新表。所以它涉及一个额外的SELECT声明。

我可以这样插入

有解决办法吗?

0 投票
1 回答
4430 浏览

mysql - mySQL 5.7 使用新的 json 功能将行作为 json 返回

我正在查看一些新的JSON 功能,并想知道是否有一种聪明(或明显)的方法可以将行集作为 JSON 对象返回。理想情况下,无需命名键或使用任何类型的字符串操作。

例子:

会回来

甚至更好

将返回所有 3 个对象的数组

如果您不熟悉 JSON 的新功能,其中一项新功能是JSON_OBJECT

将返回一个键值 JSON 对象。

0 投票
2 回答
12790 浏览

mysql - 从存储在 MySQL 数据库中的 json 字符串中删除 key:value

我在表中有一个列,它以以下格式存储:

我需要删除所有带有值的 field1(例如 "field1":"val1","field1":"val2","field1":"val3" ),结果应该是

我试图通过替换来实现这一点,但卡在 '"field1":"val1"' 字符串 val1 可以是任何值,如 null、某个整数。

由于 val1 的动态值,我被卡住了。

0 投票
1 回答
1724 浏览

mysql - MySQL 5.7 JSON 数据类型可以容纳多少

MySQL 5.7 JSON 数据类型可以容纳多少价值/大小?

MySQL 5.7 JSON 数据类型的限制是什么?

0 投票
1 回答
3656 浏览

mysql - mysqlimport 发出“set @@character_set_database=binary”,这会阻止加载 json 值

我一直在使用 mysqlimport 很长时间没有问题,现在由于 mysql 5.7 添加了 json 数据类型支持,我正在尝试将 mysqlimport 与包含 json 数据的行一起使用。

这是将使用 mysqlimport 导入的 csv 文件中的一行示例:

请注意,最后一列类型是 json。现在使用mysqlimport时如下:

我收到以下错误:Cannot create a JSON value from a string with CHARACTER SET 'binary'., when using table: products

但是使用生成的LOAD DATA IN FILE而不是 mysqlimport 没有问题!我打开mysql日志,检查运行mysqlimport时生成的LOAD DATA IN FILE命令,然后复制粘贴,运行没有问题!我跑了类似的东西:

它奏效了!唯一的区别是在日志中,运行 mysqlimport 时也生成了这一行

然后生成了 LOAD DATA IN FILE 命令,因此该行是问题的根源。

所以无论如何我尝试将字符集设置为utf8,

但徒劳无功,发生了同样的错误。

那么有什么线索可以解决这个字符集问题吗?

0 投票
2 回答
1517 浏览

mysql - MySQL 5.7.8 JSON 合并新数据

我正在尝试使用新的 MySQL JSON 支持为管理区域制作注释/评论系统。评论需要是可编辑的,我想在将来添加对其他东西的支持,也许是文件附件(将文件路径存储在 JSON 中,而不是文件本身!)。

我认为有一种方法可以合并类似于 array_merge() 的新数据,而无需每次都针对特定的键。

此查询有效,但它只针对一件事,即评论的文本内容。如果我想添加/编辑标签、图像或文件附件等,那么我需要一个很长的查询或几个查询。

我尝试将 JSON_REPLACE 和 JSON_SET 函数与 JSON_OBJECT 一起使用,但它会覆盖所有未指定的键,这意味着 user_id、datecreated 和任何子注释都会被覆盖。

这个 frankenstein 的查询几乎可以工作,但它实际上将更新的评论连接到旧评论的末尾:

那么有没有更好的方法来使用 MySQL 轻松/动态地更新 JSON 或目标$.comments[1].comment$.comments[1][0].user_id唯一方法?