like 연산자를 두번 사용할수있나요?? 0 1 1,060

by db초보자 [SQL Query] SQL DB Query [2021.05.13 10:24:06]


select * from
		(select rownum idx, p.* from
		(select * from product
		where product_name like '%'||'티셔츠'||'%'
		order by product.product_date desc) p)
where idx >=1 and idx <=10;

 

검색과 동시에 페이징도하려고 쿼리문을 만들었습니다. 

제가 만들고있는 프로젝트는 쇼핑몰이며 , 남성 제품과 여성 제품 2개의 type으로 지정되어있고 

select 쿼리 1개로 2개의 type을 합쳐서 검색을하고싶은데요!!

현재 product_name 이라는 컬럼에는 제품의 이름이고  , product_category 컬럼에는 남성과,여성 이라는 데이터가있습니다. 

 

지금 저의 쿼리문에는 product_name이라는 컬럼에 like 연산자를쓰게되면 이름으로 검색이되는걸 알수있습니다. 

여기서 제가 알고싶은건 product_name과 product_category를 합쳐서 사용하고싶은데 like 연산자를 1개의 쿼리에 두개 사용할수있나요?

by 마농 [2021.05.13 11:35:23]

가능합니다. 원하는 조건을 AND 또는 OR 로 계속 추가 가능합니다.
연산 우선순위는 AND 가 OR 보다 우선이므로
OR 조건 사용시 괄호 사용에 유의해야 합니다.
다만. 질문만 봐서는 정확하게 무엇을 원하는지가 불분명하네요?
무엇을 원하는에 따라 쿼리는 크게 달라집니다.
 

-- 예시 --
SELECT *
  FROM product
 WHERE product_name     LIKE '%'||'티셔츠'||'%'
   AND product_category LIKE '%'||'아동복'||'%'
   AND product_type = '남성'
;
SELECT *
  FROM product
 WHERE (  product_name     LIKE '%'||'티셔츠'||'%'
       OR product_category LIKE '%'||'아동복'||'%'
       )
   AND product_type = '남성'
;

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입