php - 使用 3 列检索 mysql 数据

标签 php mysql sql

例如,我的搜索中有 3 个字段:日、月、年 用户必须单独选择它或一起选择它,例如

日/月

日/年

月/年

日/月

日/月/年

inputs: day month year
method: GET

select 必须在任何列中搜索所有组合

表格

     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

等等

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

最佳答案

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

关于php - 使用 3 列检索 mysql 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19480881/

相关文章:

php - free_result() 与 MY_Model

mysql - 我可以有一个使用不同表参数的触发器吗?

c++ - 在 Mysql ODBC 中禁用 GUI

SQL Server - 在多个表的查询上创建索引?

sql - 是否有 PostgreSQL 等同于 Oracle 的分析?

javascript - 如何在 UI 对话框中使用 PHP_SELF?

php - 更新查询事项

php - 如何在 Apache 中只允许一个文件

分配 64 字节时 PHP PDO 允许内存耗尽

mysql - 从行到列的动态转置