2013-10-20 28 views
0

例如我在我的搜索天,月,年 用戶必須單獨選擇它3場或全部在一起,就像檢索使用3列

日/月

日/年

MySQL數據

月/年

日/月

日/月/年

inputs: day month year 
method: GET 

選擇必須在任何列搜索所有的組合

 id |  day | month | year 
    --------------------------------------- 
    1 | 10 | jan | 2013 
    2 | 25 | jun | 2013 
    3 | 02 | jan | 2015 

SELECT * FROM mytable WHERE day = $day or month = $month or year = $year; 

如果我一個月=一月應該如果返回1和3

我的我的天= 10年= 2013應該返回1

等等

它不起作用...它只與一列匹配

回答

0

您可能會遇到NULL值的問題。這可能是你想要什麼:

SELECT * 
FROM mytable 
WHERE ($day is null or day = $day) and 
     ($month is null or month = $month) and 
     ($year is null oryear = $year); 

這是假定「丟失」的值是NULL。你可能有一些其他的表示(比如空字符串),在這種情況下相應地改變邏輯。

+0

它沒有工作..我得到一個空的查詢 –

+0

用戶應該能夠與這些輸入進行任意組合,選擇其中的1,2或3 –

+1

@EddieD。 。 。 。這個where子句的結構允許你選擇'$ day','$ month'和'$ year'的任意組合。修改您的問題以包含示例數據和預期結果。 –