[英]Mysql Query : Where clause if Exists
我有一個MySQL數據庫,並且在其中有一個名為ProductMaster的表,該表具有6個字段“ Product_Id,Product_Name,Model,Opening_date,Closing_Date,Status”。 Opening_Date和Closing Date可以接受空值。因此某些記錄具有該字段的值
我有以下查詢以顯示該表中的記錄。
"select Product_Id,Product_Name,Model from ProductMaster where Status=1"
現在,我想將查詢更改為在Opening_Date和Closing_Date上具有過濾器(如果它們不為null)
例如:如果某條記錄的Opening_Date為05/01/2009,結束日期為05/30/2009,那么我想檢查今天是否是這兩個日期之間的一個日期,如果是,請返回記錄
如果兩個字段值都為空,則返回記錄
有人可以幫助我構架查詢嗎? 提前致謝
查詢的WHERE
部分(“ WHERE
子句”)只是一個長布爾表達式。 這是什么意思? MySQL只希望它返回true或false,它被理解為“是。在結果中包括此行”。 或“否。不要在結果中包括此行。”
如果我理解正確,您想做兩件事:
opening_date
和closing_date
是否為null
而且您希望僅在#1為真時才發生#2。 可以表示為:
#1 AND #2
如果#1或#2為假,則將其評估為假。
可以翻譯為:
(opening_date IS NOT NULL) AND (closing_date IS NOT NULL)
NOW() >= opening_date AND NOW <= closing_date
因此,如果我們將表達式中的#1和#2當作兩個,我們說我們要使用( #1 AND #2
),那么我們得到:
((opening_date IS NOT NULL) AND (closing_date IS NOT NULL))
AND (NOW() >= opening_date AND NOW <= closing_date`)
這就是您需要的WHERE
子句。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.