칼럼의 default 값을 가져오는 방법
Query
select COLUMN_DEFAULT from information_schema.'COLUMNS' C where table_schema='스키마 명' and table_name='테이블 명' and column_name='칼럼 명';
COLUMN_DEFAULT
, ‘COLUMNS’ C
부분 대문자로 작성할 것
- 소문자로 쓰면 쿼리 오류가 나는 것을 볼 수 있었음
예시
- schema: test
- table: user
- column: name
- default: “이름을 입력하세요.”
select COLUMN_DEFAULT from information_schema.'COLUMNS' C where table_schema='test' and table_name='user' and column_name='name';
// 반환 값
이름을 입력하세요.
SQL 쿼리에서 if 문 사용
Query
if(조건, 참일 경우 반환 값, 거짓일 경우 반환 값);
예시
1. 단순 숫자 비교
if(4 > 3, 1, 0);
// 반환 값
1
2. DB에서 가져온 값 검사
if(
(select name from user where user_id=3) = "사용자",
1,
0);
// 반환 값 - user_id가 3인 유저의 이름에 따라 다름
1 // '사용자'
0 // 그 외
저장된 값이 Default 값인지 검사
Query
select if(
(select <검사할 칼럼> from <테이블명> where <검색할 칼럼 명>=<검색할 칼럼 값>)
= (select COLUMN_DEFAULT from information_schema.'COLUMNS' C where table_schema='스키마 명' and table_name='테이블 명' and column_name='칼럼 명'),
1,
0
);
예시
사용자 프로필 이미지가 기본 이미지인지 검사하는 과정
select if(
(select img_url from user where user_id=:user_id)
= (select COLUMN_DEFAULT from information_schema.`COLUMNS` C where table_schema='schema' and table_name='user' and column_name='img_url'),
1,
0
);