gpt4 book ai didi

mysql - SQL中where子句中的IF语句

转载 作者:可可西里 更新时间:2023-11-01 06:40:54 24 4
gpt4 key购买 nike

我正在开发一个日历应用程序。它以两种格式存储时间。该表具有以下列 title、startDate、startTime。如果用户提供开始时间加上开始日期。数据库在 startTime 列中存储 UNIX 时间戳(自 UNIX epok 以来的秒数),而 startDate 为 NULL。如果用户只提供开始日期,数据库将以 nnnn-mm-dd 格式存储日期到 startDate 中,将 NULL 格式存储到 ´startTime` .我有这个数据库结构,因为它更容易显示世界各地的时间,因为不同的时区有不同的夏令时。

我想选择在指定日期之后发生的事件。客户端计算机向服务器提供当天开始的 UNIX 时间戳 ($unix) 和格式为 nnnn-mm 的日期 ($date) -dd 选择正确的日期。

问题是,我不知道如何选择如上所述发生的那些日子。此解决方案不适用于我,即使它有效:

SELECT *
FROM events
WHERE startDate >= '$date'
OR startTime >= '$unix'

问题是我在某些行中 startTime 中提供了 unix 时间戳,我还在 startDate 中提供了日期和其他我不知道的原因不想解释。因此,我无法使用上述解决方案。

我需要某种在 Where 子句中包含 IF 语句的解决方案,例如:

SELECT *
FROM events
WHERE IF(startTime = NULL, startDate >= '$date', startTime >= '$unix')

我只是在猜测这个解决方案。但这是对的吗?

最佳答案

WHERE (startTime IS NULL AND startDate >= '$date')
OR (startTime IS NOT NULL AND startTime >= '$unix')

关于mysql - SQL中where子句中的IF语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5987208/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com