database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 27945 게시물 읽기
No. 27945
update set where 1 구문
작성자
박성원(darkancia)
작성일
2008-12-24 10:19
조회수
5,042

안녕하세요 즐건 아침입니다.



오늘 해외에서 query를 받았는데요... 


꽤 난감한 쿼리가 왔네요 


update TABLENAME set CLO=TEXT where 1



대충 위와 같은 구문입니다. 


궁근한건 도대체 왜?? " where 1 " 이런게 들어가는거가요? 항상 참이면 테이블의 모든 데이터가 대상인데


그럼 where 구문 자체가 필요없는데 말이죠 ;;



왜그럴까요? 혹시 사용중이거나 아시는분은 한줄기에 빛을 부탁드립니다. ^^




ps.. 즐건 성탄절 되세요 ^^


이 글에 대한 댓글이 총 3건 있습니다.

where 1

또는 where 1 = 1

 

이라고 select 문에도 쓰는 이 방법은 사실 where의 조건을 동적으로 만들어 낼때 편합니다.(개인적으로 1 = 1 형식을 좋아하는 편입니다만 이건 그냥 취향이구요)

 

(1) acode = 1 만 만족하는 경우에만 select든 delete든 처리해야 하는 경우라면

where 1 = 1 이 있는 경우: ' and acode = 1'만 붙여 넣으면 되지만

where 1 = 1 이 없는 경우: ' where acode = 1' 을 붙여 넣어야 되구요

 

(2) acode = 1 과 bcode = 1을 동시에 만족하는 경우 select든 delete든 처리해야 하는 경우라면

where 1 = 1 이 있는 경우: ' and acode = 1 and bcode = 2'만 붙이면 되지만

where 1 = 1 이 없는 경우: ' where acode = 1 and bcode = 2'를 붙여야 됩니다.

 

즉, where 1 = 1 을 미리 붙여 넣어두면 추가로 조건을 붙이는 경우에

기존에 조건이 있었나 없었나를 고민해야할 필요가 없이

그냥 ' and 조건 '을 붙여 넣어버리면 되거든요.

 

 

 

우욱님이 2008-12-24 11:05에 작성한 댓글입니다.
이 댓글은 2008-12-24 11:06에 마지막으로 수정되었습니다. Edit

오옷... 역시 우욱님 대단합니다. ^^

저 =1 은 예전에 쿼리 인젝션으로 호대게 당해서 오늘 쿼리받고 좀 벙쪄있었는데 그런 의미가 있군요...


즉, "where 절의 편리성을 추구하기위해 붙이는것" 이라고 생각하면 될듯하네요 ㅋㅋ 

감사하구요 참 우욱님 사시는곳이 어디신가요? 안되면 저희끼리라도 먼저 시작해서 인원을 늘리죠 ^^

박성원(darkancia)님이 2008-12-24 12:30에 작성한 댓글입니다.

제가 있는 곳에서 제일 가까운 지하철 역이 3호신 신사역입니다.

우욱님이 2008-12-24 14:44에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
27948Full Table Scans [1]
박신득
2008-12-29
5566
27947slave DB 변경에 관한 방법론에 대해서 문의드립니다.
박성원
2008-12-26
4824
27946update 쿼리 시간 [1]
2008-12-25
5792
27945update set where 1 구문 [3]
박성원
2008-12-24
5042
27944mysql 이전 질문 (5.0.21-community-nt -> 5.0.67) [1]
임시손님
2008-12-23
4473
27943query explan에 대해서 문의 드립니다. [3]
박성원
2008-12-22
4375
27942인덱스를 어떻게 만듭니까?? [1]
한스
2008-12-22
4670
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다