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