在MySQL中存储数组通常有以下几种方法:
MySQL 5.7及以上版本支持JSON数据类型,可以直接存储数组。
CREATE TABLE example (
id INT AUTO_INCREMENT PRIMARY KEY,
data JSON
);
INSERT INTO example (data) VALUES ('["value1", "value2", "value3"]');
SELECT data FROM example WHERE id = 1;
将数组序列化为字符串(如JSON、XML)或二进制数据(如使用PHP的serialize()函数),然后存储在VARCHAR或BLOB类型的字段中。
CREATE TABLE example (
id INT AUTO_INCREMENT PRIMARY KEY,
data TEXT
);
$array = array("value1", "value2", "value3");
$data = json_encode($array);
INSERT INTO example (data) VALUES ($data);
$result = mysqli_query($conn, "SELECT data FROM example WHERE id = 1");
$row = mysqli_fetch_assoc($result);
$array = json_decode($row['data'], true);
创建一个关联表来存储数组元素及其与主表的关联关系。
CREATE TABLE example (
id INT AUTO_INCREMENT PRIMARY KEY
);
CREATE TABLE example_data (
id INT AUTO_INCREMENT PRIMARY KEY,
example_id INT,
value VARCHAR(255),
FOREIGN KEY (example_id) REFERENCES example(id)
);
INSERT INTO example () VALUES ();
SET @last_id = LAST_INSERT_ID();
INSERT INTO example_data (example_id, value) VALUES (@last_id, 'value1'), (@last_id, 'value2'), (@last_id, 'value3');
SELECT * FROM example_data WHERE example_id = 1;
通过以上方法,可以根据具体需求选择合适的方式来存储数组数据。
领取专属 10元无门槛券
手把手带您无忧上云