问题标签 [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.
mysql - mysql JSON路径遍历数组的正确语法?
我的问题是关于在 mysql 的 JSON 数据类型中搜索时搜索 json 数组的内容。
数据库结构
所以,如果我在 mysql 表中有两行,带有一个 json 字段,称为foo
.
第一行有:
第二行有:
有效的东西
我可以跑
返回 2 个结果:bar
和baz
我可以跑
返回 1 个结果:1
- 即。第一行的id。
我的问题
mysql 文档声明您可以使用“[*]
评估 JSON 数组中所有元素的值”。
但是,以下查询返回零项:
我的查询有什么问题?
mysql - 在 MySQL 中使用对象数组查询 JSON 列
我有一个带有以下数组的 json 列:
我尝试了以下查询以获取文档列中具有 id 的行24276e4b-de81-4c2c-84e7-eed9c3582a31
,但它不返回结果:
有人知道如何进行正确的查询吗?
mysql - array.array 的 JSON_REMOVE 导致“路径表达式可能不包含 * 和 ** 标记”错误
如果我这样做: SELECT JSON_REMOVE(@I, '$.friends[*].name');
或者SELECT JSON_REMOVE(@I, '$.friends[*].friends');
在下面的 JSON 上,我得到这个错误:
JSON:
但是,如果我这样做SELECT JSON_EXTRACT(@I, '$.friends[*].friends')
,它会很好地返回结果。
基本上我想返回一个全部friends.name
删除甚至friends.friends
删除的字符串。
java - SQL JSON 列(忽略大小写)
我有一个 JSON 格式的 SQL 列,看起来像data->'$.name'
,我想问一下是否可以对该列进行忽略大小写,例如
UPPER(data->'$.name')
.
例子:
select * from TYPE_hugo_DATA WHERE UPPER(data->'$.name') = UPPER('hugo');
mysql - 在 JSON 数据类型的数组中搜索对象属性的问题
我有以下value
作为 JSON 类型的架构
我希望下面的查询返回我的行foo
,但它没有。
该条件value->'$.friends[*].friendId'
似乎有效,因为它适用于以下查询:
那么查询是怎么来的select * from people where value->'$.friends[*].friendId' = "123";
没有返回结果呢?
mysql - 要在“IN”子句中使用的 MySQL JSON 数组?
我可以使用 JSON 数组作为IN
MySQL 子句的参数(版本 5.7 及更高版本,因为它支持 JSON)?
以下是我无法正常工作的代码...
mysql - 如何在 JSON 数据类型中索引数组或嵌套对象中的属性?
生成虚拟列是索引 JSON 属性的推荐方法。
但是,如果我要索引的属性位于数组或对象中怎么办?例如,如果 JSON 属性是一个 userId 数组,并且我正在查询数组中的 userId,那么我想被索引。最好的方法是什么?
mysql - 将 JSON_EXTRACT 与 CAST 或 STR_TO_DATE 链接失败
我正在尝试从 MySQL 中的 JSONFIELD“数据”中提取日期时间。
但是,如果我执行简单的 JSON_EXTRACT,则返回字段类型是 JSON。
我想将其转换为 MySQL DATETIME。但是如果我链接 JSON_EXTRACT 和 STR_TO_DATETIME,我会得到所有 NULL 值:
同样,作为 DATETIME 的 CAST 也会失败:
当我从字符串值开始时,这两个命令都有效:
将不胜感激任何帮助解决这个问题!
mysql - 从 MySQL 中的字符串 json 数组中删除元素
我有许多列的表,其中包含对象的字符串数组 json。
我需要从这些数组中删除几个元素。我发现如何从一行中删除元素,但如何在多行上删除?
对于一行,我使用 json_search 来查找必须删除的元素,但我有很多行和许多元素要删除。没有存储过程(while循环)有什么办法吗?
这是数据样本:
我只需要从每个array
包含a
和/或g
我的查询是:
我找到了如何更新所有列的方法,但是这个查询只删除了 json 字段,而不是整个对象。如何删除整个对象?
mysql - 使用 MySQL JSON 字段加入表
我有一个存储 id 列表的 json 字段(我知道这里不是最佳实践),我想知道是否可以在这个 JSON 字段上使用 do 操作并在 sql 中使用它们。
下面是我想要实现的一个虚构示例,这样的事情可行吗?
有了上面的数据,我想设计一个查询,给我这样的结果:
我在想的一些伪风格的 SQL 在下面,尽管我仍然不知道这是否可能,或者我将使用 mysql 提供的 JSON 函数来实现这一点
如果问题不清楚,请告诉我。