2009-08-28 10 views
76

이 업데이트 쿼리를 수행 할 때, 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' 

답변

109

는 역 따옴표를 (" '") 식별자 인용 문자로 "Y"에 대한 다른 따옴표입니다 사용해보십시오. 그렇지 않으면 MySQL은 "y"라는 열을 가리킨다 고 생각합니다.

당신은 따옴표의 선택을 확인 (열 이름 등 값, 문자열 및 역 따옴표에 대한/작은 따옴표를 두 번 사용) 할 수도 MySQL 5 Documentation

+0

감사합니다. –

15

참조하십시오. 당신은 단지 테이블 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); 
+0

제안을 주셔서 감사합니다. 더 우아한 방법처럼 보입니다. –

33

는 임의의 문자열을 묶은 작은 따옴표 안에 MySQL 서버에 전달하는 단계; 예컨대 : 쿼리는 큰 따옴표로 둘러싸여 있지만, 당신은 작은 따옴표로 문자열을 묶어야합니다 것을

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

참고.

+0

감사합니다. PHP에서 내 쿼리가 작동하지 않는 이유를 알아 내려고했습니다. 단 한 개의 따옴표를 추가해야했습니다. – RiCHiE

+1

나는 이것이 오래된 게시물이지만 왜 따옴표를 넣어야하는지 대답 할 수 있겠는가? – RiCHiE

+0

@RiCHiE 문자열을 사용할 때 일반적으로 더 안전합니다. 또한 따옴표 사이에 문자열을 넣는 것이 더 의미가 있습니다. 예를 들어, SHA1과 같은 함수를 사용할 때 'SHA1 ('$ var ')와 같은 내용을 인용 부호로 묶습니다. – George

2

내 경우에는 열 이름 끝에 보이지 않는 후행 공백이 원인이었습니다. 대신에 "y"또는 "y"를 실제로 사용하는지 확인하십시오.

0

생 같은 쿼리는 테이블이 FROM 절에서 열 선택에서 지정하지 포함되어있는 오류

select table1.id from table2 

의 원인이됩니다.

0

EF 코드로 .NET 응용 프로그램을 빌드하는 동안 먼저 Sql("UPDATE tableName SET columnName = value"); 문을 사용하여 마이 그 레이션을 적용하려고 할 때이 오류 메시지가 나타납니다.

나는 columnName의 철자가 틀 렸습니다.

관련 문제