MySQL中有一種稱為字符串?dāng)?shù)組的字段類型,它可以存儲多個值,并以逗號分隔。這種類型可以在某些情況下非常有用。例如,當(dāng)您需要存儲一些數(shù)據(jù),這些數(shù)據(jù)有多個可選值,但您不想使用多個關(guān)聯(lián)表時,您可以使用字符串?dāng)?shù)組。
下面是一個示例代碼,顯示如何創(chuàng)建數(shù)據(jù)庫表并使用字符串?dāng)?shù)組字段類型:
CREATE TABLE books ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, author VARCHAR(255) NOT NULL, genres VARCHAR(255) NOT NULL ); INSERT INTO books (title, author, genres) VALUES ('The Great Gatsby', 'F. Scott Fitzgerald', 'fiction, classic'), ('To Kill a Mockingbird', 'Harper Lee', 'fiction, classic'), ('The Hobbit', 'J.R.R. Tolkien', 'fantasy, classic');
在上面的示例中,我們創(chuàng)建了一個名稱為“books”的表,并使用一個名為“genres”的字符串?dāng)?shù)組類型來存儲每本書的流派。值“fiction, classic”表示此書可以歸類為古典文學(xué)和小說。
如果您要查詢包含特定流派的所有書籍,則可以使用“LIKE”運(yùn)算符來模糊匹配字符串?dāng)?shù)組字段:
SELECT * FROM books WHERE genres LIKE '%classic%';
上面的代碼將返回所有歸類為古典文學(xué)的書籍,包括《了不起的蓋茨比》和《殺死一只知更鳥》。
盡管MySQL字符串?dāng)?shù)組字段已被廣泛使用,但它并不是標(biāo)準(zhǔn)SQL類型,因此,在使用時需要小心。在某些情況下,最好使用關(guān)聯(lián)表。