티스토리 뷰

반응형

회사에서 사용하는 조립라인의 날짜관련 조회 화면을 만드는데, 값이 '0000-00-00'으로 일괄적으로 자장되면 다루기가 쉬운데, 어떤 것은 초기 상태의 'null'값으로 되어 있어 골치가 아팠습니다.

그래서 sql 구문이 이상하게 길어지는 현상이 있었습니다.

  $common=" where  (deadline IS NULL or date(deadline)='0000-00-00' or date(deadline)>=date(now())) and ((( mainassembly_date IS NULL or date(mainassembly_date)='0000-00-00' )  and bon_su>0 ) or  (lcassembly_date IS NULL and lc_su>0 and (type!='011' and type!='012' and type!='013D' and type!='025' and type!='017' and type!='014'))) order by deadline asc, num desc ";  
  $sql = "select * from mirae8440.ceiling " . $common;                            
  $sqlcon = "select * from mirae8440.ceiling " . $common;    

뭐, 요런식으로 너무 길어지는 mysql 구문...

고민끝에 전부 '0000-00-00'형식으로 저장해서 그것에 관련된 내용으로 조작히면 구문이 짧아질 수 있습니다.

수정해서 이렇게 바뀐 것이지요.

   if($cursort==8) // 미제작List 선택시
{
  $common=" where  (date(deadline)>=date(now())) and ((mainassembly_date='0000-00-00' and bon_su>0 ) or  (lcassembly_date ='0000-00-00' and lc_su>0 and (type!='011' and type!='012' and type!='013D' and type!='025' and type!='017' and type!='014'))) order by deadline asc, num desc ";  
  $sql = "select * from mirae8440.ceiling " . $common;                            
  $sqlcon = "select * from mirae8440.ceiling " . $common;                           
  
}  

전체를 수정하는 sql 구문입니다.

UPDATE mirae8440.ceiling SET mainassembly_date = '0000-00-00' WHERE mainassembly_date IS NULL;
SELECT mainassembly_date FROM `ceiling` order by num desc;

UPDATE mirae8440.ceiling SET lcassembly_date = '0000-00-00' WHERE lcassembly_date IS NULL;
SELECT lcassembly_date FROM `ceiling` order by num desc;

UPDATE mirae8440.ceiling SET etcassembly_date = '0000-00-00' WHERE etcassembly_date IS NULL;
UPDATE mirae8440.ceiling SET etcbending_date = '0000-00-00' WHERE etcbending_date IS NULL;
UPDATE mirae8440.ceiling SET etcwelding_date = '0000-00-00' WHERE etcwelding_date IS NULL;
UPDATE mirae8440.ceiling SET etcpainting_date = '0000-00-00' WHERE etcpainting_date IS NULL;
UPDATE mirae8440.ceiling SET etclaser_date = '0000-00-00' WHERE etclaser_date IS NULL;

UPDATE mirae8440.ceiling SET mainpainting_date = '0000-00-00' WHERE mainpainting_date IS NULL;
SELECT mainpainting_date FROM `ceiling` order by num desc;

UPDATE mirae8440.ceiling SET lcpainting_date = '0000-00-00' WHERE lcpainting_date IS NULL;
SELECT lcpainting_date FROM `ceiling` order by num desc;

UPDATE mirae8440.ceiling SET mainwelding_date = '0000-00-00' WHERE mainwelding_date IS NULL;
SELECT mainwelding_date FROM `ceiling` order by num desc;

UPDATE mirae8440.ceiling SET lcwelding_date = '0000-00-00' WHERE lcwelding_date IS NULL;
SELECT lcwelding_date FROM `ceiling` order by num desc;

UPDATE mirae8440.ceiling SET mainbending_date = '0000-00-00' WHERE mainbending_date IS NULL;
SELECT mainbending_date FROM `ceiling` order by num desc;

UPDATE mirae8440.ceiling SET lcbending_date = '0000-00-00' WHERE lcbending_date IS NULL;
SELECT lcbending_date FROM `ceiling` order by num desc;

UPDATE mirae8440.ceiling SET eunsung_laser_date = '0000-00-00' WHERE eunsung_laser_date IS NULL;
SELECT mainlaser_date FROM `ceiling` order by num desc;

UPDATE mirae8440.ceiling SET lclaser_date = '0000-00-00' WHERE lclaser_date IS NULL;
SELECT lclaser_date FROM `ceiling` order by num desc;

해결되니 참 좋습니다.^^

반응형
댓글