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]+$';
'프로그래밍 > SQL' 카테고리의 다른 글
문자열이 특정한 조건을 만족하는 형태로 이루어져있는지 체크하는 방법(정규표현식) (0) | 2024.10.25 |
---|---|
특정 문자 기준으로 문자열을 자르는 SUBSTRING_INDEX() (0) | 2024.10.23 |
INSTR(), LOCATE()를 이용하여 원하는 문자의 위치를 찾기 (0) | 2024.10.22 |
이전 행을 가져오는 lag()와 이후 행을 가져오는 lead() (0) | 2024.10.22 |
SQL 코딩테스트 복기 - JSON array에 들어있는 원소의 개수(JSON_LENGTH) (0) | 2024.04.27 |
TAGS.