where절에 분명히 있는 column명을 썼는데 없다고 에러가 나는 이유(unknown column)

select name,email,substr(email,1,instr(email,'@')-1) as email_name from person;

 

 

 

위와 같은 테이블에서 email_name에 대해 where절로 원하는 데이터만 뽑을려고 했는데

 

select name,email,substr(email,1,instr(email,'@')-1) as email_name from person
where email_name regexp '^[A-Za-z]+$';

 

 

 

 

이렇게 unknown column 에러가 남

 

chatgpt 피셜로 select 절에서 사용된 별칭은 where절에서 바로 사용 불가능이라함

 

 

 

이렇게 서브쿼리로 쓰거나

 

select * from (select name,email,substr(email,1,instr(email,'@')-1) as email_name from person) A
where email_name regexp '^[A-Za-z]+$';

 

 

컬럼의 별칭을 쓰지말고 진짜 이름 그대로 쓰거나하면 에러가 안남

 

select name,email,substr(email,1,instr(email,'@')-1) as email_name from person
where substr(email,1,instr(email,'@')-1) regexp '^[A-Za-z]+$';
TAGS.

Comments