MySQL에서 공백이있는 열 이름을 선택하는 방법 [중복]


90

다른 개발자가 같은 열 이름을 가진 테이블을 만든 프로젝트에서 작업 중입니다 'Business Name'. 그것은 두 단어 사이의 공백입니다. SELECT'비즈니스 이름' 으로 문을 실행하면 '비즈니스'라는 이름의 열이 없다고 표시됩니다.

이 문제를 어떻게 해결할 수 있습니까?


나는 적절하게 댓글을 달 수있는 평판이 충분하지 않아 결국 태그를 붙였다 : 위의 댓글에 게시 된 솔루션 : `annoying_table`.`Business Name` 은 mySQL에서 where 문에서 작동하지 않았습니다. 테이블 이름에 역 따옴표를 삭제하면 효과가있었습니다
Tim0th1

답변:


159

일반적으로 첫 번째 단계는 처음에는 수행하지 않는 것이지만 이미 수행 된 경우 열 이름을 올바르게 인용해야합니다.

SELECT `Business Name` FROM annoying_table

일반적으로 이러한 종류의 작업은 Microsoft Access와 같은 것을 사용하고 항상 GUI를 사용하여 작업을 수행 한 사람들이 만듭니다.


@tadman 쿼리를 복사하여 붙여 넣으면 작동하지만 키보드에서 작은 따옴표를 입력하면 작동하지 않습니다. 즉. annoying_table에서 'Business Name'선택이 작동하지 않음
ehp

17
그것은 작은 따옴표가 아니라 숫자 1의 왼쪽에있는 키보드에서 일반적으로 찾을 수있는 눈금 기호 이기 때문입니다 .
peterm

5
따옴표에는 single ', double ", backwards 의 세 가지 종류가 있습니다 `. MySQL에서 처음 두 개는 동일하며 서로 바꿔서 사용할 수 있습니다. 다른 플랫폼에서는 항상 그런 것은 아니며 특히 Postgres는 이들을 다르게 취급합니다. 백틱은 데이터베이스 또는 열 이름 이스케이프에만 사용됩니다.
tadman

대괄호 []가 작동하지 않았습니다. 오류는 없지만 표시하지 않았습니다. `반면에 훌륭하게 작동했습니다.
Jay

1
@Robert 그런 다음`annoying_table`.`Business Name`과 같이 작성합니다.
에릭 Čerpnjak

20

큰 따옴표가 작동하지 않으면 대괄호 안에 문자열을 포함 해보십시오.

예 :

SELECT "Business Name","Other Name" FROM your_Table

다음과 같이 변경할 수 있습니다.

SELECT [Business Name],[Other Name] FROM your_Table


16

작은 따옴표 대신 백틱을 사용해야합니다.

작은 따옴표-- 'Business Name'잘못됨

Backtick-- `Business Name`정답


3

각각 자신에게 있지만 이것을 코딩하는 올바른 방법은 밑줄을 삽입하여 열의 이름을 바꾸어 간격이 없도록하는 것입니다. 이렇게하면 코딩 할 때 오류가 발생하지 않습니다. 공개 표시 용 열 이름을 인쇄 할 때 검색 및 바꾸기를 통해 밑줄을 공백으로 바꿀 수 있습니다.


0

MS Access의 경우 대괄호가 작동하고 백틱으로 인해 "잘못된 쿼리 이름 : Query1"과 같은 모든 종류의 이상한 오류가 발생합니다.

다음과 같이 보일 것입니다.

SELECT Customer.[Customer ID], Customer.[Full Name] ...

-3

큰 따옴표도 작동한다고 생각합니다.

SELECT "Business Name","Other Name" FROM your_Table

그러나 누군가 MS SQL Server로 작업하는 경우 mySQL이 아닌 SQL Server에서만 테스트했습니다.


5
이것은 항상 열의 내용이 아닌 "Business Name"문자열을 선택합니다.
JonasB

@JonasB 다시 확인하십시오. 작은 따옴표가 아닌 큰 따옴표를 사용했습니다 .... 작은 따옴표는 문자열이되고 큰 따옴표는 사용되지 않습니다.
Vin.X

질문은 특히 MySQL에 관한 것이었고 표준 설정이있는 MySQL 서버에서는 큰 따옴표와 작은 따옴표가 동일합니다. MySQL에서 큰 따옴표를 사용하는 것이 나쁜 생각 인 이유에 대한 자세한 내용은 다음 답변을 참조하십시오. stackoverflow.com/a/14123649/4172652
JonasB
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.