在 MySQL 中存储数组:多表解决方案
在 MySQL 中,由于没有数组,直接存储数组并不简单数据类型。要存储引用另一个表中的值的字符串数组,通常使用多表设计方法。
表设计
创建两个表:Person 和 Fruit。 Person 包含名称和一个将存储数组数据的水果列。 Fruit 包含fruit_name、color 和price。
CREATE TABLE Person ( `id` INT NOT NULL PRIMARY KEY, `name` VARCHAR(50), `fruits` VARCHAR(255) ); CREATE TABLE Fruit ( `fruit_name` VARCHAR(20) NOT NULL PRIMARY KEY, `color` VARCHAR(20), `price` INT );
存储数组数据
要在fruits 列中存储水果名称数组,您可以使用以逗号分隔的列表。例如:
INSERT INTO Person (`name`, `fruits`) VALUES ('John Doe', 'apple,banana,orange');
检索数组数据
要检索某个人的水果名称数组,请使用 JOIN 查询来链接基于 Person 和 Fruit 的表在fruit_name值上。
SELECT p.name, f.fruit_name FROM Person p INNER JOIN Person_Fruit pf ON pf.person_id = p.id INNER JOIN Fruit f ON f.fruit_name = pf.fruit_name;
此查询将返回人名以及与之关联的水果名称他们。
以上是如何使用多个表在 MySQL 中高效存储和检索数据数组?的详细内容。更多信息请关注PHP中文网其他相关文章!