[mysql] 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' 



답변

식별자 인용 문자가 백틱 ( “`”)이므로 “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”를 실제로 사용하는지 확인하십시오.


답변

먼저 EF 코드로 .Net 앱 빌드를 작업하는 동안 마이그레이션을 적용하려고 할 때이 오류 메시지가 표시됩니다. Sql("UPDATE tableName SET columnName = value"); 명령문 .

columnName의 철자가 틀렸다는 것이 밝혀졌습니다.


답변

이것에 대한 내 경험을 공유합니다. 나는이 같은 문제를 겪고 있었다. 삽입 또는 업데이트 문이 올 바릅니다. 그리고 인코딩도 확인했습니다. 열이 존재합니다. 그때! 트리거의 열을 참조하고 있다는 것을 알았습니다. 또한 문제가있는 열을 참조하는 스크립트가 있는지 트리거를 확인해야합니다.


답변

이것에 대한 내 경험을 공유합니다. 나는이 같은 문제를 겪고 있었다. 내 쿼리는 다음과 같습니다.

select table1.column2 from table1

그러나 table1에는 column2 열이 없습니다.