mysql如何存储二维数组

2023-12-11 10:30:05 举报文章

MySQL是一个广泛使用的关系型数据库管理系统,可以方便地存储和管理大量数据。在MySQL中存储二维数组需要使用多张表或JSON格式。

使用多张表的方法:把二维数组按行或列分别存储在多张表中,每一张表都代表其中的一维。例如,在存储一个二维数组a时,可以创建a_row和a_column两张表,其中a_row存储每行的数据,a_column存储每列的数据,每一行或列对应都有一个唯一的主键,两张表均以主键为外键连接,即可完成二维数组的存储。查询时按需分别从两张表中获取数据并组装成二维数组。

--by www.qzphp.cn
CREATE TABLE a_row( id INT PRIMARY KEY, col1 INT, col2 INT, col3 INT);
CREATE TABLE a_column( id INT PRIMARY KEY, row1 INT, row2 INT, row3 INT);
INSERT INTO a_row VALUES (1, 1, 2, 3), (2, 4, 5, 6), (3, 7, 8, 9);
INSERT INTO a_column VALUES (1, 1, 4, 7), (2, 2, 5, 8), (3, 3, 6, 9);
SELECT a_row.col1, a_row.col2, a_row.col3 FROM a_row INNER JOIN a_column ON a_row.id=a_column.row1 WHERE a_column.id=1;

另外一种方法是使用JSON格式存储。在MySQL 5.7及以上版本支持JSON类型,可以直接在表中将二维数组以JSON格式存储,查询时通过JSON函数可以便捷地操作其中的数据。例如,要存储一个二维数组b,可以创建一个JSON类型的字段,值为其转换后的JSON字符串。

--by www.qzphp.cn
CREATE TABLE b(  
  
   
id INT PRIMARY KEY,  
  
   
data JSON);
INSERT INTO b VALUES (1, '[ [1,2,3], [4,5,6], [7,8,9] ]');
SELECT JSON_EXTRACT(data, '$[1][1]') as element FROM b;

综上所述,MySQL存储二维数组可以采用多张表或JSON格式,具体方法需要根据实际需求进行选择。

如果你认为本文可读性较差,内容错误,或者文章排版错乱,请点击举报文章按钮,我们会立即处理!