>데이터 베이스 >MySQL 튜토리얼 >내 SQL 쿼리에서 'Where 절에 알 수 없는 열' 오류가 발생하는 이유는 무엇입니까?

내 SQL 쿼리에서 'Where 절에 알 수 없는 열' 오류가 발생하는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-17 16:11:10428검색

Why Does My SQL Query Throw an

"Where 절의 알 수 없는 열" SQL 오류 문제 해결

SQL에서 발생하는 두려운 'Where 절의 알 수 없는 열' 오류는 쿼리 평가 순서에 대한 단순한 오해로 인해 발생하는 경우가 많습니다. SQL은 쿼리를 오른쪽에서 왼쪽으로 처리합니다. 즉, WHERE 절에 정의된 별칭이 인식되기 전에 SELECT 절이 평가됩니다.

예를 들어 설명하겠습니다.

<code class="language-sql">SELECT u_name AS user_name FROM users WHERE user_name = "john";</code>

이 쿼리는 별칭 user_name을 사용하여 결과를 필터링하려고 시도하지만 데이터베이스는 절을 평가한 WHERE 이 별칭을 발견합니다. user_nameusers 테이블의 열이 아니므로 오류가 발생합니다.

해결책: 열 참조 우선순위 지정

이 문제를 해결하는 두 가지 간단한 방법이 있습니다.

  1. 원래 열 이름 사용: 가장 간단한 해결 방법은 WHERE 절의 별칭을 테이블의 실제 열 이름으로 바꾸는 것입니다.
<code class="language-sql">SELECT u_name AS user_name FROM users WHERE u_name = "john";</code>

이렇게 하면 데이터베이스가 필터링을 위해 올바르게 식별된 열을 사용하게 됩니다.

  1. 별칭을 괄호로 묶습니다(덜 일반적임): 또는 SELECT 절 평가 전에 별칭 확인을 강제하기 위해 WHERE 절 표현식을 괄호로 묶을 수 있습니다.
<code class="language-sql">SELECT (u_name) AS user_name FROM users WHERE user_name = "john";</code>

이 접근 방식은 기능적이지만 원래 열 이름을 사용하는 것보다 가독성이 낮고 일반적으로 덜 선호됩니다.

평가 순서를 이해하고 이러한 솔루션 중 하나를 사용하면 "Where 절의 알 수 없는 열" 오류를 효과적으로 예방하고 해결할 수 있습니다.

위 내용은 내 SQL 쿼리에서 'Where 절에 알 수 없는 열' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.