有一个星期五的时刻...正在尝试编写MySQL标准,如下所示:
两个日期之间的时间戳记,如果field2是a或b,则该时间戳记不大于23:59
就像是:
(`timestamp` BETWEEN @StartDate And @EndDate) AND NOT ((`timestamp`>='23:59') AND (`Field2` NOT IN ('a','b')))
这对我来说似乎有点过头,并且在我的编辑器中显示错误字符,所以我试图确定此格式是否错误,或者我是否在某处对括号进行了错误计数。我实际上是在timestamp字段上执行一些计算,但是为了简单起见,省略了这些计算。
任何见解表示赞赏!
除了尝试避免OR
出于索引目的之外,类似这样的东西有什么问题吗?
... AND (f2 NOT IN ('a', 'b') OR ts <= '23:59')
Edit1 :(如果我没记错我的布尔逻辑转换),它等效于:
... AND NOT (f2 IN ('a', 'b') AND ts > '23:59')
Edit2:或者,换一种方式来看,可以将第一个版本扩展为:
... AND (f2 NOT IN ('a', 'b') OR (f2 IN ('a', 'b') AND ts <= '23:59'))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句