我有这个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
+---------------------+-------------------
我认为这很简单,但我无法弄清楚如何放置查询。 谢谢你的帮助
答案 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。