问题标签 [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 数据类型的用例
我正在为用户可以在其上编写Articles
. 我几乎完成了设计,突然间我JSON datatype
在MySQL
.
根据博客,JSON
可以使用某些用例:
- 用于存储元数据。例如,产品的高度、宽度、颜色存储为 JSON。
- 用于存储非标准模式类型数据
- 用于将标签存储为 JSON。例如,这个问题可能有标签 - mysql、JSON。因此,博客建议使用包含所有
tags
.
最后一个让我怀疑。为什么?
好的,我已将 JSON 中的标签值存储为{"tags": ["mysql", "JSON", "mysql-datatype"]}
. 我同意这有助于轻松维护文章的标签。
但是假设用户想要阅读所有与mysql
标签相关的文章!如果我一直为article_id
-维护一个单独的表tags_id
,我可以轻松地获得所有Articles
基于tags
. 但这JSON
可能是一个非常繁忙的要求,尽管这可以解决但需要付出代价。当然查询速度较慢。
这是我的文章模式:
我的思维方式是正确的还是我在这里遗漏了什么?喜欢听一些建议。
php - JSON_CONTAINS 无法从 MySQL 中找到
在 MySQL 中,我使用 PHP 的 json_encode 将数据存储在“jsonValues”字段中:
通过 PHP,我想通过编写以下查询来获取数据:
但是,它显示错误:
3141 - 函数 json_contains 的参数 2 中的 JSON 文本无效:“文档根不能跟随其他值。” 在第 10 位。
php - 将 MySQL JSON_OBJECT() 与参数化查询一起使用
我试图使用以下查询向 MySQL 表中插入一个条目。如果我将 MySQL 参数化查询与 mysqli 一起使用,如下所示,它可以正常工作。
但是,如果我使用下面的 mysqli 参数化查询,则会将错误“无法从具有 CHARACTER SET 'binary' 的字符串创建 JSON 值”放入调试文件中。请有人帮忙解决这个问题。
mysql - 如何在 MySQL JSON_CONTAINS 中使用 PDO bindParam?
我正在尝试运行以下命令:
但是,它总是导致空匹配。删除参数并直接输入值可以正常工作。
我怀疑引号有问题,但我不太明白 - 我需要修改什么才能让它工作?
mysql - MySQL/MariaDB JSON_EXTRACT 和 JSON_CONTAINS
我有一个具有以下结构的表:
我需要的是根据listener_descriptions
列做一些搜索。为了确保JSON_*
方法有效,我做了这个查询,效果很好:
现在我想选择所有匹配的行SSLCertificateId
:
但是没有找到结果。我在第二个参数中尝试了单引号和双引号的多种组合,JSON_CONTAINS
但没有成功。
mysql - 如何将列表传递给mysql程序?
你想在mysql程序中一次插入一对多数据(数据列表),你可以使用json方法。然后,您必须通过 mysql json 格式将数据列表作为 json 传递。然后您可以使用 while 循环插入列表数据。
mysql - 如何在 MySQL 5.7 中更新嵌套的 JSON 数据类型
使用 JSON_SET 更新简单的 JSON 数据类型没有问题,但使用嵌套它就行不通了。
查询应该如何使用如下格式:
有些行可能是空的,有些行没有“武器”结构。
我尝试了什么:
我想更新 t_1 以将值从 0 更改为 1
mysql - 从与 MYSQL JSON 中的属性匹配的对象数组中选择对象
我在 MySQL 数据库中有一个包含 1 个 JSON 类型列 city 的表,该表存储具有以下结构的城市对象的 JSON 数组:
我想从 city 数组中选择对象,countryID = 90
但我被卡住了,因为对象数组存储在单个列city
中,这阻止了我执行(*)
with WHERE JSON_CONTAINS(city->'$.cities', JSON_OBEJECT('countryID', '90'))
。
我的查询看起来像这样,但我无处可去,
SELECT JSON_EXTRACT(city, '$.cities') FROM MyTable WHERE JSON_CONTAINS(city->'$.cities', JSON_OBJECT('countryID', '90'))
如果有人能指出我正确的方向或给我一个解决方案,那将是一个很大的帮助。
谢谢
mysql - MySQL JSONField 嵌套数组 SUM
我在 MySQL 8.0 数据库中有一个简单的表,如下所示:
我可以使用以下方法填充我的 JSONField:
我想要的是提取SUM
所有 Balance 值。
我试过这个:
但是给出了结果:
另外,如果我摆脱SUM
,结果是:
这让我相信这JSON_UNQUOTE
也不适用于这个嵌套数组 SELECT。
我如何查询表(最好没有自定义函数),以便它给出:
mysql - 使用 MySQL Json_search 函数使用不区分大小写的搜索获取 JSON 数据中值的路径表达式
我有一个要求,我需要从按值搜索的 JSON 数据中提取 JSON 路径表达式。
例如,如果我将 JSON 数据存储为
如果我需要获得价值'Arun Babu'的JSON路径,我可以使用
这导致
这是正确的,但问题是如果我使用值'arun babu'进行搜索,它会返回 NULL。所以要进行不区分大小写的搜索,我使用了
所以现在我得到的结果是
但这不是我需要的,因为现在结果也以小写形式输出,我需要结果为
"$[1].Name" 任何人都可以提出一个好的解决方案或方法。
MySQL 版本使用的是 5.7(支持 JSON 类型的版本)