mysql 如何让SQL产生2个条件

ddrv8njm  于 2023-11-16  发布在  Mysql
关注(0)|答案(1)|浏览(145)

我有一个表名notis。属性是nomborFail(主键varchar),tarikhNotis2(日期),tarikhNotis3(日期)和status(varchar)。我想显示数据,有日期在更多tarikhNotis2和tarikhNotis3,也显示数据超过2,如果tarikhNotis3是NULL。
我能做到吗?

SELECT * FROM notis  WHERE ((CURRENT_DATE() > tarikhNotis2 AND tarikhNotis3=NULL) OR (CURRENT_DATE() > tarikhNotis2 AND CURRENT_DATE() < tarikhNotis3)) AND status='BELUM SELESAI'

字符串

siotufzp

siotufzp1#

当然,看起来您希望根据涉及tarikhNotis2和tarikhNotis3日期字段的特定条件从notis表中检索数据。您正在寻找日期之间具有某种关系的记录,并且还考虑了状态字段。
但是,在您提供的查询中有一个小问题。tarikhNotis3=NULL的比较不会像预期的那样工作。在SQL中,您应该使用tarikhNotis3 IS NULL来检查NULL值。
下面是一个更新的SQL查询,以反映您的需求

SELECT *
FROM notis
WHERE (
    (tarikhNotis3 IS NULL AND CURRENT_DATE > tarikhNotis2)
    OR (tarikhNotis3 IS NOT NULL AND CURRENT_DATE > tarikhNotis2 AND CURRENT_DATE < tarikhNotis3)
  )
  AND status = 'BELUM SELESAI';

字符串
此查询从notis表中获取记录,其中:
如果tarikhNotis3为NULL,则检查当前日期是否大于tarikhNotis2。如果tarikhNotis3不为NULL,则检查当前日期是否介于tarikhNotis2和tarikhNotis3之间。此外,它会根据状态字段“BELUM SELESAI”筛选这些记录。请确保您的数据库系统支持CURRENT_DATE函数,并根据数据库的日期处理约定调整与日期的比较(如果需要

相关问题