Я пытался выяснить, почему это дает мне ошибку:MySQL Приготовьте -> Неизвестный столбец в списке полей
PREPARE test FROM 'SELECT t.blah FROM (SELECT ? AS blah) t;';
ERROR 1054 (42S22): Unknown column 't.blah' in 'field list'
также:
PREPARE test FROM 'SELECT t.* FROM (SELECT ? AS blah) t;';
ERROR 1051 (42S02): Unknown table 't'
Это было бы здорово, если бы кто-то мог пролить свет на эти ошибки. Спасибо!
EDIT: Существует сообщение об ошибке здесь:http://bugs.mysql.com/bug.php?id=71577
Кажется, что обходной путь будет делать:
PREPARE test FROM 'SELECT t.blah FROM (SELECT ? AS blah UNION SELECT ? AS blah) t;';
На самом деле я не вижу прецедента для такого утверждения, но я вижу трудности с различием между заполнителем для значения (разрешено) и заполнителем для столбца (недопустимым). – VMai
В приведенном выше примере заполнители предназначены для значений, а не для столбцов. Они разрешены, и это признанная ошибка (см. Ссылку выше). Я намеренно упростил вопрос, чтобы он иллюстрировал концепцию и облегчил ее воспроизведение. –
@BoynanPenev Во-первых, перед редактированием со ссылкой на отчет об ошибке я предположил, что вы использовали бы заполнители для имен столбцов, но после прочтения отчета об ошибке понял, что он должен быть постоянным значением. – VMai