MYSQL SELECT MAX来自两列

时间:2017-12-12 09:37:45

标签: mysql max

我有一个包含列的表:

col1  col2  col3  col4  entryId
1     2     abc   123   1
4     1     abc   234   2
4     2     abc   234   3
2     1     abc   456   4
2     2     abc   456   5
1     2     qwe   567   6
4     1     qwe   678   7
5     2     qwe   789   8

我需要一个mysql查询来检查给定的col4值。如果找到,则返回col2最大的行。如果未找到,则返回给定col3(abc)的最大col 1(然后是最大col2)的行。

示例:

如果搜索col4 = 456 AND col3 = abc,输出将为:2,2,abc,456,4

如果搜索col4 = 891 AND col3 = abc,输出将为:4,2,abc,234,3

2 个答案:

答案 0 :(得分:3)

您应该使用ORDER BY

运行SELECT * FROM table WHERE col4 = 456 AND col3 = 'abc' ORDER BY col2 DESC LIMIT 1。如果未找到记录,则运行SELECT * FROM table WHERE col3 = 'abc' ORDER BY col1 DESC, col2 DESC LIMIT 1

编辑:如果您只想使用一个SQL查询来执行此操作,则可以按照this answer使用UNION ALL将这两者结合起来。

答案 1 :(得分:0)

ngValue

希望,它有效