[mysql] MySQL은 두 개 이상의 주어진 값 중에서 최소 / 최대를 선택합니다.

SELECT둘 이상의 값 중 최소 또는 최대가 가능합니까? 다음과 같은 것이 필요합니다.

SELECT MAX_VALUE(A.date0, B.date0) AS date0, MIN_VALUE(A.date1, B.date1) AS date1
FROM A, B
WHERE B.x = A.x

MySQL 만 사용하여이 작업을 수행 할 수 있습니까?



답변

그것을 달성하기 위해 사용 LEAST하고 GREATEST기능 할 수 있습니다.

SELECT
    GREATEST(A.date0, B.date0) AS date0,
    LEAST(A.date1, B.date1) AS date1
FROM A, B
WHERE B.x = A.x

둘 다 여기에 설명되어 있습니다 http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html


답변

나는 당신이 찾고 있다고 가정합니다 :

GREATEST()

LEAST()


답변

NULL이 필드 값에있을 가능성이 있는지 확인하십시오.

SELECT LEAST(NULL,NOW());

SELECT GREATEST(NULL,NOW());

둘 다 null을 반환하는데, 이는 원하는 것이 아닐 수도 있습니다 (특히 GREATEST의 경우).


답변

이 시도:

SELECT GREATEST(A.date0, B.date0) AS `date0`,LEAST(A.date0, B.date0) AS `date1`
  FROM A
  JOIN  B
    ON A.id = B.role;


답변