【发布时间】:2021-09-08 02:05:54
【问题描述】:
我正在使用MySql 8.0 verion,我的表格如下所示:
CREATE TABLE `table1` (
`id` int(11) NOT NULL,
`tableType` varchar(45) DEFAULT NULL,
`jkey` varchar(45) DEFAULT NULL,
`jval` json DEFAULT NULL,
PRIMARY KEY (`id`)
)
这里jval总是有2个字段如下:
{"group": "group1@abc.com", "user": "user1"}
{"group": "group2@abc.com", "user": "user2"}
我正在尝试将索引添加到 JSON column jval 但出现以下错误:
Operation failed: There was an error while applying the SQL script to the database.
ERROR 3152: JSON column 'jval' supports indexing only via generated columns on a specified JSON path.
SQL Statement:
ALTER TABLE `db1`.`table1`
ADD INDEX `jval` (`value` ASC) VISIBLE
如何在 MySQL 中创建一个 virtual column 来索引 jval?
【问题讨论】:
-
能分享一下你的mysql版本吗?玛丽亚?
-
MySql 8.0 版本
-
MySQL 没有直接索引 JSON 文档的方法,但它为我们提供了另一种选择:生成列。我们可以索引一个 JSON 字段。可以分享一下示例json和要索引的字段吗
-
这里
jval将有 2 个值,如下所示:{group1@abc.com, sme1} {group2@abc.com, sme2} -
它不是一个有效的 json。只需共享一个正确的 json 和要编入索引的
field
标签: mysql json join indexing mysql-workbench