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개의 쿼리에 두개 사용할수있나요?
가능합니다. 원하는 조건을 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 = '남성' ;