mysql查询比较MAX值和给定参数,如果max是给定的一个,则返回0或1

时间:2015-11-29 18:39:19

标签: mysql compare max

我有这个UNION查询

mysql> SELECT gpio_lastevent FROM `GPIO_setup` WHERE gpio_id = 5 UNION select max(gpio_lastevent) from GPIO_setup;

结果是:

+---------------------+
| gpio_lastevent      |
+---------------------+
| 2015-11-29 14:36:30 |
| 2015-11-29 17:28:47 |
+---------------------+

在mysql级别我需要比较MAX是否等于给定参数并在另一列中返回0或1(如果为true)或0如果为false

我期望的结果是:

+---------------------+-------------------
| gpio_lastevent      |gpio_latestevent_true
+---------------------+-------------------
| 2015-11-29 17:28:47 |1
+---------------------+-------------------

我认为这很简单,但我无法弄清楚如何放置查询。 谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

一种方法是使用子查询:

SELECT
  gpio_lastevent,
  gpio_lastevent=max_lastevent
FROM
  `GPIO_setup` CROSS JOIN (SELECT MAX(gpio_lastevent) as max_lastevent
                           FROM GPIO_Setup) m
WHERE
  gpio_id = 5

这里在子查询中我得到了最后一个事件,然后我将所有行加入此子查询,如果当前事件是最后一个事件,则gpio_lastevent=max_lastevent将为1,否则为0。