Mysql의 경우 RECURSIVE를 이용하여 특정기간의 일(목록)을 구할 수 있다.

 

예를들면 2022-01-10 ~ 2022-01-15의 목록의 결과는 다음과 같다.

2022-01-10, 2022-01-11, 2022-01-12, 2022-01-13, 2022-01-14, 2022-01-15

 

WITH RECURSIVE VIEW_DATE AS (
    SELECT STR_TO_DATE('20220110', '%Y%m%d') AS TODAY
     UNION ALL
    SELECT DATE_ADD(VIEW_DATE.TODAY, INTERVAL 1 DAY) 
      FROM VIEW_DATE 
     WHERE DATE_ADD(VIEW_DATE.TODAY, INTERVAL 1 DAY) <= '20220115'
)
SELECT TODAY
  FROM VIEW_DATE;

 

DB 조회 결과

 

쿼리를 수행하는 도중 서브쿼리(Subquery)가 존재할 때

 

단 1개의 컬럼만 도출되어야 하나, 2개 이상의 컬럼이 도출 되었을 때 발생하는 에러이다.

 

쿼리를 다시 확인하고, 서브쿼리(Subquery)를 올바르게 사용하자.

공통 메서드 중 가장많이 사용하는 isEmpty 메서드를 소개한다.

 

null or not null 을 먼저 판별한 후

 

각 어떤 클래스인지 instanceof로 판단 뒤 각 클래스에 선언된 메서드를 이용하여 판별한다.

 

Java isEmpty 메서드

/**
 * obj가 null 혹은 비어있는지 비교
 * 
 * @params Object obj
 * @return boolean
 * @apiNote Custom.isEmpty(obj)
 *
 */
public static boolean isEmpty(Object obj){
    // null 이라면
    if (obj == null)
        return true;

    // String 이라면
    if (obj instanceof String)
        return ("".equals(((String) obj).trim()));

    // Map이라면
    if (obj instanceof Map)
        return ((Map<?,?>) obj).isEmpty();

    // List라면
    if (obj instanceof List)
        return ((List<?>) obj).isEmpty();

    // Object 배열이라면..
    if (obj instanceof Object[])
        return (((Object[]) obj).length == 0);

    return false;
}

 

MYSQL의 버전을 확인하는 방법

 

SELECT VERSION();

 

 

 

MYSQL 버전 확인

+ Recent posts