例如,我的搜索中有 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/