MySQL을 비롯한 쿼리언어에서 가장 많이 사용되는 것이 바로 데이터 조회에 사용되는 select 문이라고 생각되네요. 이 select문을 사용해 쿼리문을 짜는 것 역시 만만치 않은 작업입니다.
select문을 사용하여 원하는 정보만 가져오기 위해서는 select문과 함께 사용되는 다양한 키워드를 활용해야 할 것입니다. 대표적으로 where, and, or, between 그리고 like 등등 정말 많이 존재하죠. 기호도 물론입니다. || , % 등등... 이 모든 것을 정리하여 어떻게 사용하는지 알아보고자 합니다 :)
아래의 예제들은 이 다양한 방법을 사용하여 테이블안에 있는 필드에서 원하는 값만 찾는 방법들입니다. like, not을 이용한 방법외에도 여러가지를 함께 정리하였으니 아래 예제를 참고해 쿼리문을 짜시는데 도움이 되면 좋겠습니다.
! select 사용 예제코드와 함께 알아보기
SELECT * FROM tablename WHERE who="me";
// who 필드에서 "me"를 가진 데이터를 찾을때...
SELECT * FROM tablename WHERE who LIKE "%me%";
// who 필드에 앞뒤에 어떤 문자가 와도 상관 없이 me를 가진 데이터 검색하기
/* 아래는, 앞 또는 뒤에 어떤 문자가 와도 상관 없는 경우 */
SELECT * FROM tablename WHERE who LIKE "%me";
// 앞에 문자 무시
SELECT * FROM tablename WHERE who LIKE "me%";
// 뒤에 문자 무시
SELECT * FROM tablename WHERE NOT who="me";
// who 필드에 "me"를 제외한 데이터
SELECT * FROM tablename WHERE filed1 LIKE "%me%" AND filed2 LIKE "%you%";
// me를 가진 값의 앞뒤 문자를 무시하고 동시에 you의 앞뒤의 값을 무시한 데이터를 가져옴
/* 아래와 같이 % 기호를 다수 사용할 수도 있습니다. */
; SELECT * FROM TABLE WHERE FIELD1 LIKE ’%me%you%’;
// 간단하면서 매우 유용하게 사용 가능. 특히 복수개의 인덱스 검색시 더욱 필요
그 외 기타 예제들입니다.
SELECT * FROM tablename WHERE who LIKE "%me%" OR who LIKE "%you%";
// OR은 AND와 달리 A 또는 B와 같이 둘 중 하나만 만족해도 데이터를 불러옴
SELECT * FROM tablename WHERE who LIKE "%me%" OR NOT who LIKE "%you%";
// 뒤에 NOT이 들어가는 경우 필드 앞에 써야함
SELECT * FROM tablename WHERE who=test AND (who LIKE "%me%" OR NOT who LIKE "%you%");
// 위와 같이 괄호를 묶어서 우선순위 지정이 가능
SELECT * FROM tablename WHERE who < 100 AND who > 10;
// 숫자 데이터의 경우 부등호의 사용이 가능
SELECT * FROM tablename WHERE who < 100 AND who > 10 ORDER BY DATE;
// DATE란 필드를 기준으로 정렬을 요청함
SELECT * FROM tablename WHERE who < 100 AND who > 10 ORDER BY DATE DESC;
// DESC 옵션은 내림차순... 참고로 기본은 오름차순