且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何在MySQL中创建虚拟列来索引JSON列?

更新时间:2022-06-17 16:23:48

mysql没有直接索引JSON文档的方法,但它为我们提供了另一种选择:生成列。通过从JSON文档中的值生成列,然后对该列进行索引,我们实际上可以为JSON字段编制索引。

Generated Columns的语法为

column_name数据类型始终生成为(表达式)

您的查询将类似

CREATE TABLE `table1` (
  `id` int(11) NOT NULL,
  `tableType` varchar(45) DEFAULT NULL,
  `jkey` varchar(45) DEFAULT NULL,
  `jval` json NOT NULL,

  `group_virtual` VARCHAR(250) GENERATED ALWAYS AS (`jval` ->> '$.group') NOT NULL, 
  `user_virtual` VARCHAR(250) GENERATED ALWAYS AS (`jval` ->> '$.user') NOT NULL,   
  
  PRIMARY KEY (`id`)
);

您可以检查虚拟列