2012-07-20 3 views
1

가능한 중복 :
How do I escape reserved words used as column names? MySQL/Create TableMySQL의 괄호

이것은 대답하기 쉬운 것이어야한다, 나는 희망한다. T (x, y, t), T (x, y, t-1), T (x + 1, y, t) 등과 같은 여러 테이블에 일련의 열 이름이 있습니다. 칼럼 이름의 괄호는 눈살을 찌푸리게하지만 SELECT 절에서 (테이블 이름과 같은) 이름을 어떻게 참조 할 수 있습니까?

예를 들어, 나는

SELECT A.JDAY, 'B.T(x,y,t)' 
FROM A, B 

SELECT A.JDAY, B.'T(x,y,t)' 
FROM A, B 

같은 것들을 시도했습니다 ...하지만 그 중 어느 것도 제대로 동작.

+1

backtick은 "quoted identifiers"의 기본 문자입니다. 'SET sql_mode = 'ANSI_QUOTES'(또는 ANSI_QUOTES를 포함하는 특별한 조합 모드)를 사용하면 큰 따옴표 문자를 사용할 수도 있습니다. 이미 이중 따옴표가있는 스크립트로 작업 할 때 일반적으로이 작업을 사용하고 실제로 큰 따옴표를 사용하지만 MySQL이 수용하기를 원합니다. 아니요, 역 따옴표 문자는 "따옴표"식별자를 제외하고는 MySQL에서 다른 특별한 사용법을 가지고 있지 않습니다. – spencer7593

답변

5

당신은 틱 다시 사용할 수 있습니다

SELECT A.JDAY, B.`T(x,y,t)` 
FROM A, B 

테스트하지,하지만 트릭을 할해야합니다.

+1

테이블 조인을 표현하려면 쉼표 대신 INNER JOIN 또는 CROSS JOIN을 사용하십시오. – Sebas

+0

신난다. 생각하지 않았다, 고마워! 백틱에 다른 용도가 있습니까? (일반적으로 조인을 사용하지만 여기서 예제로 짧은 코드를 작성했습니다.) – Amy

+0

글쎄, 내 작은 테스트 조각으로 작동하는 것처럼 보였지만, 더 큰 쿼리에이를 통합 할 때 " 액세스 위반 "오류가 발생했습니다. – Amy