반응형

개발/DB 2

MySQL 무작위 SELECT 쿼리 (ORDER BY RAND())

어떤 테이블에서 row 중 N개를 무작위로 뽑아 가져오려면 어떻게 해야할까? 여러 솔루션이 있겠지만 가장 쉬운 방법은 ORDER BY와 RAND()함수, LIMIT을 함께 사용하는 것이다. 빠르게 사용법과 사용 예제를 살펴보자.  사용 방식SELECT [가져올 컬럼명] FROM [테이블 명] ORDER BY RAND() LIMIT [가져오려는 row 개수];개수 상관없이 전체 다 가져오려면 LIMIT [가져오려는 row 개수] 부분을 안 쓰면 된다.  사용 예시SELECT * FROM [테이블 명] ORDER BY RAND() LIMIT 7;이렇게 하게 되면 테이블에서 무작위로 7개만 가져오게 될 것이다. 마무리 만약 가져오려는 row의 개수보다 테이블에 존재하는 row의 개수가 더 적다면 에러 없이 존..

개발/DB 2021.12.02

[MySQL] 현재 시간에 시간 더하기(DATE_ADD, DATE_SUB 함수)

테이블 설계 중 행사 혹은 이벤트의 기한을 설정하기 위해 DATE타입의 2개의 컬럼을 추가했다. 하나는 created_at, 하나는 expired_at이다. created_at은 행사가 만들어진 시간을 의미하고 expired_at는 이벤트 종료 시점 혹은 이벤트 신청 마감을 의미한다.(영어 단어 선택이 이상하다고 느껴지면 그냥 넘어가주자...) 이때 created_at의 경우 현재 시간이 필요하므로 그냥 NOW()함수를 통해 쉽게 DATE를 추가할 수 있었다. 하지만 expired_at은 어떻게 해야할까? 예를 들어 현재 시점에서 3일 후가 행사 마감일이라면 이때 DB에 어떻게 삽입해야할까? 이때 쓰기 좋은 함수가 바로 DATE_ADD함수이다. 우선 사용 문법과 예시를 보자 시간 더하기(DATE_ADD)..

개발/DB 2021.12.02
반응형