Неизвестный столбец в ошибке "список полей" при запросе обновления MySQL
Я продолжаю получать ошибку 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 ответов:
попробуйте использовать разные кавычки для "y", поскольку символ кавычки идентификатора является обратным ("`"). В противном случае MySQL "думает", что вы указываете на столбец с именем "y".
см. также Документация MySQL 5
заключите любую строку, которая будет передана серверу mysql внутри одинарных кавычек; например:
$name = "my name" $query = " INSERT INTO mytable VALUES ( 1 , '$name') "
обратите внимание, что хотя запрос заключен между двойными кавычками, вы должны заключить любую строку в одинарные кавычки.
вы можете проверить свой выбор кавычек (используйте двойные/ одинарные кавычки для значений, строк и т. д. и обратные кавычки для имен столбцов).
Так как вы только хотите обновить таблицу
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);
в моем случае это было вызвано невидимым конечным пробелом в конце имени столбца. Просто проверьте, действительно ли вы используете "y" или "y" вместо этого.
запрос, подобный thi, также вызовет ошибку
select table1.id from table2
где таблица указана в столбце select и не включена в предложение from.