如何在MySQL中存储数组?

我在MySQL中有两个表。表人具有以下列:

id | name | fruits

fruits列可以包含null或字符串数​​组,例如(’apple’,’orange’,’banana’)或(’strawberry’)等。第二个表是Table

Fruit,具有以下三列:

____________________________

fruit_name | color | price

____________________________

apple | red | 2

____________________________

orange | orange | 3

____________________________

...,...

那么,我应该如何设计fruits第一个表中的列,以便它可以容纳从fruit_name第二个表中的列获取值的字符串数组?由于MySQL中没有数组数据类型,该怎么办?

回答:

正确的方法是JOIN在查询中使用多个表和它们。

例如:

CREATE TABLE person (

`id` INT NOT NULL PRIMARY KEY,

`name` VARCHAR(50)

);

CREATE TABLE fruits (

`fruit_name` VARCHAR(20) NOT NULL PRIMARY KEY,

`color` VARCHAR(20),

`price` INT

);

CREATE TABLE person_fruit (

`person_id` INT NOT NULL,

`fruit_name` VARCHAR(20) NOT NULL,

PRIMARY KEY(`person_id`, `fruit_name`)

);

person_fruit表为一个人关联的每种水果包含一行,并有效地将personfruits表链接在一起,即IE

1 | "banana"

1 | "apple"

1 | "orange"

2 | "straberry"

2 | "banana"

2 | "apple"

当您要检索一个人及其所有果实时,可以执行以下操作:

SELECT p.*, f.*

FROM person p

INNER JOIN person_fruit pf

ON pf.person_id = p.id

INNER JOIN fruits f

ON f.fruit_name = pf.fruit_name

以上是 如何在MySQL中存储数组? 的全部内容, 来源链接: utcz.com/qa/436453.html

回到顶部