๊ด€๋ฆฌ ๋ฉ”๋‰ด

bom's happy life

[SQL] WHERE 1=1๋ž€? ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ? ๋ณธ๋ฌธ

Deveolpment Study๐Ÿ—‚๏ธ/Databases

[SQL] WHERE 1=1๋ž€? ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ?

bompeach 2023. 9. 13. 10:15

1. WHERE 1=1๋ž€?

WHERE๋Š” ์กฐํšŒํ•˜๋ ค๋Š” ๋ฐ์ดํ„ฐ๋“ค์˜ ์กฐ๊ฑด์„ ๊ฑฐ๋Š” ๋ฌธ๋ฒ•์ด๋‹ค.

1=1์€ ์ฐธ์„ ์˜๋ฏธํ•œ๋‹ค.

 

WHERE 1=1

WHERE 2=2

WHERE 3=3

๋ชจ๋‘ ๊ฐ™์€ ์˜๋ฏธ.

 

๋ฐ‘์˜ ๋‘ ๊ฐœ์˜ ์ฟผ๋ฆฌ๋ฌธ์˜ ์˜๋ฏธ๋Š” ๊ฐ™๋‹ค.

ํ•ด์„ํ•˜์ž๋ฉด, MEM_ID๊ฐ€ '3'์ธ ๋ฐ์ดํ„ฐ๋“ค์„ ๋ชจ๋‘(์ฐธ) ์กฐํšŒํ•œ๋‹ค. ๋Š” ์˜๋ฏธ

์ฆ‰, 1=1์ด๋ž€ ์กฐ๊ฑด์€ ์žˆ์œผ๋‚˜ ๋งˆ๋‚˜ํ•œ ์กฐ๊ฑด!

SELECT *
FROM ORDER
WHERE 1=1
AND MEM_ID = '3'
SELECT *
FROM ORDER
WHERE ์ฐธ
AND MEM_ID = '3'

 

 

2. ๊ทธ๋ ‡๋‹ค๋ฉด WHERE 1=1์ ˆ์„ ๊ตณ์ด ์“ฐ๋Š” ์ด์œ ๊ฐ€ ๋ญ˜๊นŒ?

1) ์ฟผ๋ฆฌ ๋””๋ฒ„๊น… ์‹œ, ์ฃผ์„์ฒ˜๋ฆฌ๊ฐ€ ํŽธํ•˜๋‹ค.

 

์˜ˆ์ œ๋กœ ์•Œ์•„๋ณด์ž.

SELECT *
FROM ORDER
WHERE MEM_ID = '3'
AND COM_NAME LIKE 'L%'

COM_NAME LIKE 'L%'์ธ ๋ฐ์ดํ„ฐ๊ฐ€ ์ž˜ ์กฐํšŒ๋˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด MEM_ID = '3' ์กฐ๊ฑดํ–‰์„ ์ž ์‹œ ์ฃผ์„์ฒ˜๋ฆฌ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด

SELECT *
FROM ORDER
WHERE --MEM_ID = '3'
--AND 
COM_NAME LIKE 'L%'

์ด๋ ‡๊ฒŒ ์ฃผ์„์„ ๋‘๋ฒˆ ์จ์ค˜์•ผ ํ•œ๋‹ค.

 

๊ทธ๋Ÿฐ๋ฐ WHERE 1=1์„ ์‚ฌ์šฉํ•˜๋ฉด ๋น„๊ต์  ์‰ฝ๊ฒŒ ์ฃผ์„์ฒ˜๋ฆฌํ•˜๋ฉด์„œ ๋””๋ฒ„๊น…ํ•  ์ˆ˜ ์žˆ๋‹ค.

SELECT *
FROM ORDER
WHERE 1=1
--AND MEM_ID = '3'
AND COM_NAME LIKE 'L%'

 

 

2) ๋™์ ์ฟผ๋ฆฌ์—์„œ ํŠน์ •์ƒํ™ฉ๋งˆ๋‹ค WHERE์ ˆ์„ ๋‹ค๋ฅด๊ฒŒ ์ž‘์„ฑํ•ด์ค˜์•ผ ํ•  ๋•Œ ํŽธ๋ฆฌํ•˜๋‹ค.

 

์–ด๋–ค ์ƒํ™ฉ์ด ์žˆ์„๊นŒ?

 

ํ”ํžˆ ์กฐํšŒ์กฐ๊ฑด์ด ์žˆ๋Š” ์กฐํšŒ๊ธฐ๋Šฅ์„ ๋– ์˜ฌ๋ฆฌ๋ฉด ๋œ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด,

์‚ฌ์šฉ์ž๊ฐ€ MEM_ID๋ฅผ ์กฐํšŒ์กฐ๊ฑด์œผ๋กœ ์„ ํƒํ•œ ํ›„ ์กฐํšŒํ•  ๋•Œ๋Š” MEM_ID๋กœ,

COM_NAME์„ ์กฐํšŒ์กฐ๊ฑด์œผ๋กœ ์„ ํƒํ•œ ๊ฒฝ์šฐ์—๋Š” COM_NAME์œผ๋กœ WHERE์ ˆ์˜ ์กฐ๊ฑด์„ ๊ฑธ์–ด์ค˜์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์ด๋‹ค.

 

JAVA๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์†Œ์Šค๋ฅผ ๋งŒ๋“ค์–ด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

query1 = "SELECT * FROM CUSTOMER "

if(!cusotmerID.equals("") {
	query2 = "WHERE CUSTOMERID = '" + customerID + "'"
}
if(!companyName.equals("") {
	if(!customerId.equals("") {
    	query3 = "AND"
    } else {
    	query3 = "WHERE"
    }
	query4 = "COMPANAYNAME = '" + companayname + "'"

์œ„์˜ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด, 

์ฒซ๋ฒˆ์งธ ์กฐ๊ฑด์— WHERE ๊ฐ€ ๋ถ™์–ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์†Œ์Šค๊ฐ€ ๋ณต์žกํ•˜๋‹ค.

์œ„๋Š” ์กฐ๊ฑด์ด 2๊ฐœ ๋ฐ–์— ์—†์ง€๋งŒ ๋Š˜์–ด๋‚˜๋ฉด ๋” ๋ณต์žกํ•ด์ง„๋‹ค.

 

 

์ด๋•Œ, WHERE 1=1์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‹จ์ˆœํ•œ ์†Œ์Šค๋กœ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

query1 = "SELECT * FROM CUSTOMER WHERE 1=1 "

if(!cusotmerID.equals("") {
	query2 = "AND CUSTOMERID = '" + customerID + "'"
}
if(!companyName.equals("") {
	query2 = "AND COMPANYNAME = '" + companyName + "'"
}

 

3. WHERE 1=1 ์ฃผ์˜์‚ฌํ•ญ

์ฟผ๋ฆฌ์˜ ์กฐ๊ฑด์„ ๋™์ ์œผ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ์งˆ์˜๋ฅผ ์ข€ ๋” ํšจ์œจ์ ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ฐ˜๋Œ€๋กœ ์ง€์–‘ํ•ด์•ผ ํ•  ์š”์†Œ๋„ ์กด์žฌํ•œ๋‹ค. SELECT ๋ฌธ ์ด์™ธ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ • ๋ฐ ์‚ญ์ œํ•˜๋Š” ์ฟผ๋ฆฌ์—๋Š” ์‚ฌ์šฉ์„ ์ง€์–‘ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. 

UPDATE, DELETE๋ฌธ์— WHERE 1=1์„ ์‚ฌ์šฉํ–ˆ์„ ๊ฒฝ์šฐ ์กฐ๊ฑด์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ ๋˜๋Š” ์‚ญ์ œ๋  ์šฐ๋ ค๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

 

.

.

.

https://hyjykelly.tistory.com/5 ๋ธ”๋กœ๊ทธ์ฐธ๊ณ  

https://ssd0908.tistory.com/entry/MYSQL-WHERE-11-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0-%EC%A3%BC%EC%9D%98%EC%82%AC%ED%95%AD%EC%9C%BC%EB%A1%9C%EB%8A%94?category=1066830๋ธ”๋กœ๊ทธ์ฐธ๊ณ