MariaDB INSERT值为COLUMN_CREATE(动态列)

时间:2014-10-22 08:11:53

标签: mariadb dynamic-columns select-insert

我需要从另一个表中选择插入动态列。

我试过了:

INSERT INTO table (id, photos)
VALUES
(12345,COLUMN_CREATE(SELECT file FROM photo WHERE ad_id = 12345));

INSERT INTO table (id, photos)
VALUES
(12345,SELECT COLUMN_CREATE(file) FROM photo WHERE ad_id = 12345));

INSERT INTO table (id, photos)
SELECT ad_id, COLUMN_CREATE(file) FROM photo WHERE ad_id = 12345;

MariaDB始终返回 #1064 - 您的SQL语法出错;

1 个答案:

答案 0 :(得分:0)

INSERT INTO `table` (id, photos)
VALUES
(12345,COLUMN_CREATE(1, (SELECT file FROM photo WHERE ad_id = 12345)));

table附近加上引号,因为它是一个保留字(List of MariaDB's reserved words)。

将动态列的编号或名称添加到COLUMN_CREATE函数的参数(COLUMN_CREATE syntax),我的示例SQL使用1作为列号。

将SELECT语句放在括号中,因为子查询必须加括号。