在某些列中存储可变大小的字符串列表

时间:2016-06-02 22:36:34

标签: mysql sql database mariadb

我是sql和mysql的新手(事实上,我使用的是mariadb实现)。我需要在某些列中存储一个可变大小的字符串列表。示例:它可能需要值

'one'['one', 'two']['one', 'two', 'three']就像python或其他高级语言中的数组类型一样。

我可以使用哪种数据类型(如果存在)?

1 个答案:

答案 0 :(得分:0)

没有数据类型可以直接执行您想要执行的操作。而是将“可变大小的字符串列表”存储在另一个表中,并使用现有表中的列来引用该另一个表。这称为连接。

例如,如果你有一个像这样结构的表......

TABLE: Shelf
id : int
location : varchar(50)
books : int

另一张表

TABLE: Books
bookId: int
Title: varchar(80)

然后你可以通过以下查询找到位置x的所有书籍......

SELECT s.location, b.title FROM Shelf s
INNER JOIN Books b on s.books = b.bookId
WHERE s.location = 'x'
ORDER BY b.title;

https://www.sitepoint.com/understanding-sql-joins-mysql-database/

对此有更好的解释