使用3列检索mysql数据

时间:2013-10-20 18:01:40

标签: php mysql sql

例如我在搜索DAY,MONTH,YEAR中有3个字段 用户必须单独选择或全部一起选择

日/月

日/年

月/年

DAY / MONTH

日/月/年

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;

如果我的月份= jan应该返回1和3

如果我的我的日子= 10年,那么= 2013年应该返回1

等等

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

1 个答案:

答案 0 :(得分: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。您可能有一些其他表示(比如空字符串),在这种情况下相应地更改逻辑。