티스토리 뷰
회사 웹사이트를 관리하면서 여러가지 mysql 검색 조건을 만들어서 사용하고 있습니다.
Null 인 데이터 조회하기가 생각보다 많이 사용합니다. 단순히 되겠지? 하면서 했던 것이 안되서 몇시간씩 애먹은 기억이 있군요.
특히 날짜로 된 필드값의 Null을 조회하기 위해서 사용했던 방법이 틀린 것이 있지요.
실제 사용한 예를 들어볼게요.
$common=" where date(deadline)>=date(now()) and etcassembly_date IS NULL and etc_su>0 order by deadline asc, num desc ";
$sql = "select * from mirae8440.ceiling " . $common;
$sqlcon = "select * from mirae8440.ceiling " . $common;
필드 값이 Null 인 데이터를 조회 하기 위해서는 무엇보다도 fields = Null 이 아니라 fields IS Null 을 사용해야 합니다.
Null 인 데이터 조회하기
데이터를 넣어 놓고 혹시나 Null 값으로 들어간 데이터가 있는지 확인 하기 위해서 조건문을 걸고 조회 하려고 했는데, 필드가 Null 값인 자료는 어떻게 조회하는지 몰라 fields = Null 이라고 조건을 걸고 조회 했습니다.
위와 같은 실수가 가장 많지요.
fields = Null 이라던지 fields=''
이런식으로 프로그램을 짜서 결과값을 보니 계속 데이터가 안나오는 현상이 일어나서... 여기저기 찾아해메다가 찾은 것이 바로
SELECT * FROM TargetTable
WHERE TargetField IS NULL
위와 같은 형식으로 만들어야 합니다.
그럼, Null이 아닌경우를 찾고 싶다면?
SELECT * FROM TargetTable
WHERE TargetField IS NOT NULL
결론적으로는 IS NULL, IS NOT NULL
두가지를 알면 된다는 것입니다.
실제 프로그램을 그리 수정했던 원하던 결과 값이 나왔습니다.
if($cursort==1) // 납기일 기준 선택시
{
$common=" where date(deadline)>=date(now()) and etc_su>0 order by deadline "; // 출고예정일이 현재일보다 클때 조건
$sql = "select * from mirae8440.ceiling " . $common;
$sqlcon = "select * from mirae8440.ceiling " . $common;
}
if($cursort==2) // 전체 기준 선택시
{
$sql="select * from mirae8440.ceiling where etc_su>0 order by orderday desc limit $first_num, $scale" ;
$sqlcon = "select * from mirae8440.ceiling where etc_su>0 order by orderday desc" ; // 전체 레코드수를 파악하기 위함.
}
if($cursort==3) // 레이져 선택시
{
$common=" where date(deadline)>=date(now()) and etclaser_date IS NULL and etc_su>0 order by deadline asc, num desc ";
$sql = "select * from mirae8440.ceiling " . $common;
$sqlcon = "select * from mirae8440.ceiling " . $common;
}
if($cursort==4) // 절곡 선택시
{
$common=" where date(deadline)>=date(now()) and etcbending_date IS NULL and etc_su>0 order by deadline asc, num desc ";
$sql = "select * from mirae8440.ceiling " . $common;
$sqlcon = "select * from mirae8440.ceiling " . $common;
}
if($cursort==5) // 제관 선택시
{
$common=" where date(deadline)>=date(now()) and etcwelding_date IS NULL and etc_su>0 order by deadline asc, num desc ";
$sql = "select * from mirae8440.ceiling " . $common;
$sqlcon = "select * from mirae8440.ceiling " . $common;
}
if($cursort==6) // 도장 선택시
{
$common=" where date(deadline)>=date(now()) and etcpainting_date IS NULL and etc_su>0 order by deadline asc, num desc ";
$sql = "select * from mirae8440.ceiling " . $common;
$sqlcon = "select * from mirae8440.ceiling " . $common;
}
if($cursort==7) // 조립 선택시
{
$common=" where date(deadline)>=date(now()) and etcassembly_date IS NULL and etc_su>0 order by deadline asc, num desc ";
$sql = "select * from mirae8440.ceiling " . $common;
$sqlcon = "select * from mirae8440.ceiling " . $common;
}
if($cursort==8) // 미제작List 선택시
{
$common=" where date(deadline)>=date(now()) and etcassembly_date IS NULL and etc_su>0 order by deadline asc, num desc ";
// $common=" where etc_su>0 order by deadline asc, num desc ";
$sql = "select * from mirae8440.ceiling " . $common;
$sqlcon = "select * from mirae8440.ceiling " . $common;
}
이런식으로 사용하면 정말 좋습니다. 수고하셨어요.
'IT tech Coding > mysql' 카테고리의 다른 글
[mysql] 필드값을 조건식을 넣어서 일괄변경하기 (0) | 2021.04.13 |
---|---|
mysql 필드값 'null'값을 '0000-00-00'으로 바꾸는 과정 (0) | 2021.02.14 |
mysql 필드추가시 형태를 넣어서 추가하기 (0) | 2019.10.25 |
절곡 벤딩데이터 설계 mysql 간단무식하게 만들어봄. ㅋ (0) | 2019.10.20 |
절곡밴딩 데이터 테이블 생성하기 (0) | 2019.10.06 |
- Total
- Today
- Yesterday
- 카페24가비아phpinfo수정
- 엑셀셀보호
- 오토핫키가이드
- 코딩튜토리얼
- 2분후종료오토핫키
- 뫄프로그래밍
- 효율적코딩방법
- #InstallForge
- sql문장 날짜계산
- #독립실행파일
- #소프트웨어배포
- #파이썬패키징
- Bootstrap 5
- #프로그램설치
- 파이썬코드줄바꿈방법
- td요소중에 1행과 1열은 제외
- chatGPT3.5파이썬버전
- 코딩효율성
- General error: 2031
- .htaccess수정
- #파이썬인스톨러
- 엑셀입력보호
- 테크에능한여성
- coalesce는 한국어로 "코얼레스크" 또는 "코얼리스"
- 프로그래머생활
- #cx_Freeze
- #NSIS
- 엑셀보호
- #InnoSetup
- 스크립트작성기초
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |