我對如何搜索兩個日期之間的行以及開始日期或結束日期爲空的情況沒有任何意見。檢查兩個日期之間的結果或爲空
這裏我做了什麼:
$query = "SELECT * FROM results WHERE ((start_date >= $start_date AND end_date <= $end_date) OR '$end_date'='' OR '$start_date'='')";
但不工作的例子。
我對如何搜索兩個日期之間的行以及開始日期或結束日期爲空的情況沒有任何意見。檢查兩個日期之間的結果或爲空
這裏我做了什麼:
$query = "SELECT * FROM results WHERE ((start_date >= $start_date AND end_date <= $end_date) OR '$end_date'='' OR '$start_date'='')";
但不工作的例子。
這應該是正確的查詢 $查詢= 「SELECT * FROM結果WHERE((起始> = '$日期' 日期和結束日期< = '$ END_DATE')或起始日期爲空或END_DATE是NULL)」; 若要檢查某些字段是否爲空或非空,則應使用語法「字段爲NULL」或「字段不爲NULL」
False query,'OR start_date is NULL or end_date is NULL' must be' OR $ start_date is NULL or $ end_date is NULL' ...但即使這樣做不起作用。 –
如果你想檢查php變量是空還是空,你必須在php中檢查它,並在這種情況下使用不同的查詢。 –
希望它來自Mysqli –
如果它們爲空/空,則不要首先運行查詢。您可以在客戶端代碼級別對if($ end_date =='')'進行簡單測試。並且注意''=''測試中缺少引號。 '2016-07-25'不是日期,它是一個雙向減法操作,並且對數字「1984」進行評估。 ''2016-07-25'**是一個日期(注意引號)。 –
對我來說這不是一個解決方案,因爲其他參數將被包含在內,並且需要日期或沒有日期的結果。 –
當end_date爲空時,end_date <=''將始終爲假。 ''不是NULL,''是一個空字符串。而NULL不是''。要測試NULL,請使用「is」。 ...其中$ end_date是NULL – Duston