如何使用 phpMyAdmin 或 sql 添加类型为数组的列
how do I add a column with type array using phpMyAdmin or sql
如何使用 phpMyAdmin 添加类型为数组的列
知道
alter table name add column listid 整数数组;
alter table name add column listid integer [];
不工作
如评论中所述,数组不是类型。您可以选择有一个单独的 table 来保留数组中的元素,并让它们有一个引用原始 table 的外键,或者每次都将数组解析为一个字符串并存储它作为文本,取决于您的需要。
CREATE TABLE orders (
id INT NOT NULL PRIMARY KEY,
description TEXT,
reference TEXT
-- This is where you'd want to add your list of order lines
);
-- Instead, we'll create an orderline table referring back to the orders
CREATE TABLE orderlines (
id INT NOT NULL PRIMARY KEY,
description TEXT,
order_id INT REFERENCES orders(id)
);
现在您可以将数组值(我现在假设是订单行)放在它们自己单独的 table 中。要查询它们,你可以这样做
SELECT * FROM orders
LEFT JOIN orderlines ON orderlines.order_id = orders.id;
使用 sub-queries 到 return 数组,您可能会变得足够聪明,尤其是在您的应用程序中。
如何使用 phpMyAdmin 添加类型为数组的列 知道 alter table name add column listid 整数数组; alter table name add column listid integer []; 不工作
如评论中所述,数组不是类型。您可以选择有一个单独的 table 来保留数组中的元素,并让它们有一个引用原始 table 的外键,或者每次都将数组解析为一个字符串并存储它作为文本,取决于您的需要。
CREATE TABLE orders (
id INT NOT NULL PRIMARY KEY,
description TEXT,
reference TEXT
-- This is where you'd want to add your list of order lines
);
-- Instead, we'll create an orderline table referring back to the orders
CREATE TABLE orderlines (
id INT NOT NULL PRIMARY KEY,
description TEXT,
order_id INT REFERENCES orders(id)
);
现在您可以将数组值(我现在假设是订单行)放在它们自己单独的 table 中。要查询它们,你可以这样做
SELECT * FROM orders
LEFT JOIN orderlines ON orderlines.order_id = orders.id;
使用 sub-queries 到 return 数组,您可能会变得足够聪明,尤其是在您的应用程序中。