0

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

我试过了:

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 语法有错误;

4

1 回答 1

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

将引号括起来,table因为它是保留字(MariaDB 的保留字列表)。

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

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

于 2014-10-22T14:25:20.233 回答