Значение MariaDB INSERT как COLUMN_CREATE (динамический столбец)

Мне нужно вставить динамический столбец, как выбрать из другой таблицы.

Я старался:

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 ответ

Решение
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 в скобки, так как подзапросы должны быть заключены в скобки.

Другие вопросы по тегам