Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MySQL Select minimum/maximum among two (or more) given values

Tags:

sql

mysql

You can use LEAST and GREATEST function to achieve it.

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

Both are described here http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html


I suppose you are looking for:

GREATEST()

and

LEAST()


Just watch out if NULL is likely to be in a field value ...

SELECT LEAST(NULL,NOW());

and

SELECT GREATEST(NULL,NOW());

both return null, which may not be what you want (especially in the case of GREATEST)


Try this:

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