Неизвестный столбец в ошибке 'списка полей' на запросе Обновления MySQL - PullRequest
104 голосов
/ 28 августа 2009

Я получаю ошибку MySQL # 1054, когда пытаюсь выполнить этот запрос на обновление:

UPDATE MASTER_USER_PROFILE, TRAN_USER_BRANCH
SET MASTER_USER_PROFILE.fellow=`y`
WHERE MASTER_USER_PROFILE.USER_ID = TRAN_USER_BRANCH.USER_ID
AND TRAN_USER_BRANCH.BRANCH_ID = 17

Возможно, это какая-то синтаксическая ошибка, но я попытался использовать вместо нее внутреннее соединение и другие изменения, но получаю одно и то же сообщение:

Unknown column 'y' in 'field list' 

Ответы [ 7 ]

134 голосов
/ 28 августа 2009

Попробуйте использовать разные кавычки для «y», так как символом кавычки идентификатора является обратная черта («` »). В противном случае MySQL «думает», что вы указываете на столбец с именем «y».

См. Также Документация по MySQL 5

41 голосов
/ 29 декабря 2009

Заключить любую строку для передачи на сервер mysql в одинарные кавычки; e.g.:

$name = "my name"
$query = " INSERT INTO mytable VALUES ( 1 , '$name') "

Обратите внимание, что хотя запрос заключен в двойные кавычки, вы должны заключить любую строку в одинарные кавычки.

16 голосов
/ 28 августа 2009

Вы можете проверить свой выбор кавычек (используйте двойные / одинарные кавычки для значений, строк и т. Д. И обратные галочки для имен столбцов).

Поскольку вы хотите обновить только таблицу master_user_profile Я бы порекомендовал вложенный запрос:

UPDATE
   master_user_profile
SET
   master_user_profile.fellow = 'y'
WHERE
   master_user_profile.user_id IN (
      SELECT tran_user_branch.user_id
      FROM tran_user_branch WHERE tran_user_branch.branch_id = 17);
4 голосов
/ 21 октября 2016

В моем случае это было вызвано невидимым завершающим пробелом в конце имени столбца. Просто проверьте, действительно ли вы используете "y" или "y" вместо этого.

1 голос
/ 14 февраля 2018

Во время работы над сборкой приложения .Net сначала с кодом EF я получил это сообщение об ошибке при попытке применить свою миграцию, где у меня был оператор Sql("UPDATE tableName SET columnName = value");.

Оказывается, я неправильно написал название столбца.

0 голосов
/ 28 июня 2018

Я тоже получил ту же ошибку, проблема в моем случае заключается в том, что я включил имя столбца в предложение GROUP BY, и это вызвало эту ошибку. Так убрал столбец из предложения GROUP BY и все заработало !!!

0 голосов
/ 16 мая 2017

Такой запрос также вызовет ошибку

select table1.id from table2

Где таблица указана в столбце select и не включена в предложение from.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...