我是sql和mysql的新手(事实上,我使用的是mariadb实现)。我需要在某些列中存储一个可变大小的字符串列表。示例:它可能需要值
'one'
或['one', 'two']
或['one', 'two', 'three']
就像python或其他高级语言中的数组类型一样。
我可以使用哪种数据类型(如果存在)?
答案 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/
对此有更好的解释