是否可以在dateTime格式的单个查询中匹配年份数组,例如2017-12-12 00:00:00
我试过这样但是它不起作用。
$years=implode(",",$year);
SELECT * FROM mytable WHERE YEAR(reg-date) = '$years';
它只返回数组中的第一年。
如何查询表以返回数组中的所有年份?
答案 0 :(得分:2)
您应该使用MySQL函数IN()
。要匹配值的年份,您应该对这些值使用YEAR()
,而不仅仅是列名。
$years = implode("'), YEAR('",$year);
然后查询将以
运行SELECT * FROM mytable WHERE YEAR(`reg-date`) IN (YEAR('$years'));
请注意,这不是理想的做法。您应该使用带有占位符的预准备语句 - 但是如果没有看到您正在使用哪种API,则很难准确显示您将如何使用它。
您还应该避免在列名中使用连字符,因为MySQL会认为您正在进行减法操作。如果你有,请用反引号包装名称。