我有这个 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,如果为假则返回 0
我期望的结果是:
+---------------------+-------------------
| gpio_lastevent |gpio_latestevent_true
+---------------------+-------------------
| 2015-11-29 17:28:47 |1
+---------------------+-------------------
我认为这很简单,但我不知道如何放置查询。 谢谢帮忙
最佳答案
一种方法是使用子查询:
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否则。
关于mysql 查询比较 MAX 值和给定的参数,如果 max 等于给定的一,则返回 0 或 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33986494/