标签: mysql-json

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

在MySQL数据库与序列化数组中存储JSON数据有哪些优缺点?

php mysql serialization mysql-json

70
推荐指数
5
解决办法
4万
查看次数

如何在MySQL中搜索JSON数据?

我正在将数据插入数据库中json_encoded.现在我想搜索"功能",但我不能.

MySQL查询:

SELECT  `id` ,  `attribs_json` 
FROM  `products` 
WHERE  `attribs_json` REGEXP  '"1":{"value":[^"3"$]'
Run Code Online (Sandbox Code Playgroud)

这个查询显示了所有带有键"1"的行,而值是任何不值为"3"的东西

我的数据是:

{"feature":{"1":{"value":"["2","3"]"},
            "2":{"value":["1"]},
            "5":{"value":""},
            "3":{"value":["1"]},
            "9":{"value":""},
            "4":{"value":"\u0633\u0627\u062a\u0646"},
            "6":{"value":""},
            "7":{"value":""},
            "8":{"value":""}
           },
"show_counter":"0",
"show_counter_discount":""
}}
Run Code Online (Sandbox Code Playgroud)

mysql json mysql-json

54
推荐指数
8
解决办法
9万
查看次数

我应该在MySQL中使用blob或文本作为JSON吗?

我打算json_encoded在我的数据库上存储一个字符串.我不能准确地说出它的长度,但我很确定它会很长.我担心的是哪种场类型,我要使用这个,是不是blob还是text

我更喜欢能够在快速搜索中尽可能节省空间的那个,在任何情况下我都有其他列我应该索引.

mysql text blob mysql-json

46
推荐指数
2
解决办法
3万
查看次数

MySQL 5.7.12导入无法从CHARACTER SET'binary'的字符串创建JSON值

我在其中导出了包含JSON列的数据库.迁移到新服务器后,我的导入每次都崩溃,出现如下错误:

无法从CHARACTER SET'binary'的字符串创建JSON值

在stackoverflow上,我找到了这篇文章,但对我来说不起作用: mysqlimport发出"set @@ character_set_database = binary",这会阻止加载json值

该文件为2GB,无法打开该文件.

任何人都有想法导入我的数据库文件?

mysql import json mysql-json

42
推荐指数
6
解决办法
2万
查看次数

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

我最近开始使用MySQL 5.7.10,我很喜欢原生的JSON数据类型.

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

问题:

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

我可以像这样插入

INSERT INTO t1 values ('{"key2":"value2"}', 1);

mysql> select * from t1;
+--------------------+------+
| data               | id   |
+--------------------+------+
| {"key1": "value1"} |    1 |
| {"key2": "value2"} |    2 |
| {"key2": "value2"} |    1 |
+--------------------+------+
3 rows in set (0.00 sec)

mysql>Show create table t1;


+-------+-------------------------------------------------------------

-------------------------------------------------------+
| Table | Create Table                                                                                                       |
+-------+--------------------------------------------------------------------------------------------------------------------+
| t1    | CREATE TABLE `t1` (
  `data` json DEFAULT NULL,
  `id` …
Run Code Online (Sandbox Code Playgroud)

mysql json mysql-5.7 mysql-json

34
推荐指数
2
解决办法
4万
查看次数

如何在MySQL中搜索JSON数组?

假设我在一些MySQL表中有一个名为data的JSON列,这个列是一个单独的数组.因此,例如,数据可能包含:

[1,2,3,4,5]

现在我想选择所有具有数据列的行,其中一个数组元素大于2.这可能吗?

我尝试了以下内容,但无论数组中的值如何,似乎总是如此:

SELECT * from my_table
WHERE JSON_EXTRACT(data, '$[*]') > 2;
Run Code Online (Sandbox Code Playgroud)

mysql mysql-json

27
推荐指数
6
解决办法
4万
查看次数

使用MySQL中的对象数组查询JSON列

我有一个带有follow数组的json列:

[
  {
    "id": "24276e4b-de81-4c2c-84e7-eed9c3582a31",
    "key": "id",
    "type": "input",
  },
  {
    "id": "e0ca5aa1-359f-4460-80ad-70445be49644",
    "key": "name",
    "type": "textarea",
    }
]
Run Code Online (Sandbox Code Playgroud)

我尝试了以下查询来获取24276e4b-de81-4c2c-84e7-eed9c3582a31文档列中具有id的行,但它不返回结果:

select * from jobs WHERE document->'$[*].id' = "24276e4b-de81-4c2c-84e7-eed9c3582a31"
Run Code Online (Sandbox Code Playgroud)

有谁知道如何做正确的查询?

mysql mysql-json

12
推荐指数
4
解决办法
1万
查看次数

MySQL嵌套JSON列搜索并提取子JSON

我有一个authors带有列的MySQL表id,namepublished_books.在这里,published_books是一个JSON列.有样本数据,

id | name  | published_books
-----------------------------------------------------------------------
1  | Tina  |  {
   |       |    "17e9bf8f": {
   |       |         "name": "Book 1",
   |       |         "tags": [
   |       |             "self Help",
   |       |             "Social"
   |       |         ],
   |       |         "language": "English",
   |       |         "release_date": "2017-05-01"
   |       |     },
   |       |      "8e8b2470": {
   |       |          "name": "Book 2",
   |       |          "tags": [
   |       |              "Inspirational"
   |       |          ],
   |       |          "language": "English",
   | …
Run Code Online (Sandbox Code Playgroud)

mysql mysql-5.7 mysql-json json-query

8
推荐指数
1
解决办法
2002
查看次数

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

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

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

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

谢谢.

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

<?php

try{
    $db = new PDO('mysql:host=some.host;dbname=somedb;charset=utf8', 'user', 'pwd');
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
}catch(PDOException  $e){
    echo "Error1: ".$e;
}

try{
    $query = $db->query("select * from table_with_json_type");

}catch(PDOException $e){
    echo "Error2: ".$e;
}
?>
Run Code Online (Sandbox Code Playgroud)

php mysql pdo types mysql-json

7
推荐指数
1
解决办法
3763
查看次数

如何检查 MySQL JSON 列属性为空?

我正在使用 MySQL 8.0.21。我需要编写一个适用于 JSON 列类型的查询。JSON 文档中的一些数据具有空值,我想过滤掉这些空值。

可能的行示例,为简单起见,已删除 JSON 文档中的大多数属性:

jsonColumn
'{"value":96.0}'
'{"value":null}' -- This is the row I am trying to filter out
NULL
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的:

-- Removed columns where jsonColumn was NULL but, NOT columns where jsonColumn->'$.value' was null. 
SELECT * 
FROM <table>
WHERE jsonColumn->'$.value' IS NOT NULL;

-- Note the unquote syntax, ->>. The code above uses ->.
-- Produced the same result as the code above.
SELECT * 
FROM <table>
WHERE jsonColumn->>'$.value' IS NOT NULL;

-- Produced same …
Run Code Online (Sandbox Code Playgroud)

mysql mysql-json mysql-8.0

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

mysql ×10

mysql-json ×10

json ×3

mysql-5.7 ×2

php ×2

blob ×1

import ×1

json-query ×1

mysql-8.0 ×1

pdo ×1

serialization ×1

text ×1

types ×1