본문 바로가기
MySQL

[MySQL] DB에서 특정 행들만 가져오기(1) - WHERE 절의 "or"를 이용

by LightBlogger 2017. 9. 8.

2017/08/04 - [SQL] - [SQL] 결과 테이블의 일부 조건만 출력하기 HAVING에서 사용하던 user_data 테이블 중


log_num 이 1, 9, 23, 109, 125, 264, 359, 416, 484, 504, 545, 620, 636, 640, 643, 669, 689, 720, 725, 749에 해당하는 자료만 뽑으려면 어떻게 해야 할까?



일단은 해당하는 log_num 을 모두 "or"로 묶어 WHERE 절에 거는 방법을 생각할 수 있겠다.


말하자면 다음과 같은 것이다.


SELECT * FROM user_data WHERE log_num='1' or log_num='9' or ...



일일이 입력하기는 귀찮으니 엑셀에서 잠시 작업하자.


일단 해당 번호들을 붙여넣고



콤마(,) 를 경계로 각 셀에 나누어 담자.


[데이터] 탭의 [텍스트 나누기] 가 이러한 역할을 수행한다.



콤마로 구분되어 있으므로 [구분 기호로 분리됨]을 선택하고



구분 기호로 쉼표(콤마)를 선택해 준 후 [마침]을 누른다.



데이터가 각 셀에 잘 나누어 들어갔다.



이대로 해도 되겠지만, 열 대신 행이 긴 것이 편할지도 모르겠다.


데이터를 복사한 후 빈 셀에서 마우스 오른쪽 버튼을 클릭하고 [선택하여 붙여넣기] - [선택하여 붙여넣기]를 누른다.



[행/열 바꿈] 에 체크하고 확인을 누른다.



데이터가 세로로 정렬되었다.



이제 WHERE 절을 생각해 보면


WHERE log_num='1' or log_num='9' or ... 와 같은 식으로 적어야 하므로


다음과 같이 &를 사용하여 문자열을 만들어준다.



아래로 채운 후 복사하고 SQL로 돌아가자.



복사한 부분을 이용해 다음과 같이 SQL을 입력한다.


마지막에는 or가 필요치 않으므로 [;]로 바꾸어 주었다.



결과가 잘 나온다.



하지만 이런식으로 or 를 이용해 조건 여러 개를 묶는 것은


DB나 조건이 커질수록 속도가 현저히 느려지게 된다.


다음 포스팅에서는 다른 방법으로 같은 문제를 해결해 보자.



(PHP 카테고리에서 이어집니다.)


2017/09/11 - [PHP] - [PHP] DB에서 특정 행들만 가져오기(2) - PHP 로 MySQL DB 제어하기

2017/09/12 - [PHP] - [PHP] DB에서 특정 행들만 가져오기(3) - 목록 읽어오기 file()

2017/09/13 - [PHP] - [PHP] DB에서 특정 행들만 가져오기(4) - 반복문 while(){}

2017/09/14 - [PHP] - [PHP] DB에서 특정 행들만 가져오기(5) - 변수를 바꾸어 문자열 출력 sprintf()

2017/09/17 - [PHP] - [PHP] DB에서 특정 행들만 가져오기(6) - 쿼리 작성하기 mysqli_query()

2017/09/18 - [PHP] - [PHP] DB에서 특정 행들만 가져오기(7) - DB에서 가져온 정보 출력하기 mysqli_fetch_row()

2017/09/19 - [PHP] - [PHP] DB에서 특정 행들만 가져오기(8) - DB 에서 열 이름 가져오기



반응형

댓글