2013-10-20 25 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'的任意组合。修改您的问题以包含示例数据和预期结果。 –