我需要从另一个表中选择插入动态列。
我试过了:
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语法出错;
答案 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语句放在括号中,因为子查询必须加括号。