mysql - 匹配datetime字段的年数组

时间:2018-04-11 07:49:09

标签: php mysql

是否可以在dateTime格式的单个查询中匹配年份数组,例如2017-12-12 00:00:00

我试过这样但是它不起作用。

$years=implode(",",$year);
SELECT * FROM mytable WHERE YEAR(reg-date) = '$years'; 

它只返回数组中的第一年。

如何查询表以返回数组中的所有年份?

1 个答案:

答案 0 :(得分:2)

您应该使用MySQL函数IN()。要匹配值的年份,您应该对这些值使用YEAR(),而不仅仅是列名。

$years = implode("'), YEAR('",$year);

然后查询将以

运行
SELECT * FROM mytable WHERE YEAR(`reg-date`) IN (YEAR('$years')); 

请注意,这不是理想的做法。您应该使用带有占位符的预准备语句 - 但是如果没有看到您正在使用哪种API,则很难准确显示您将如何使用它。

您还应该避免在列名中使用连字符,因为MySQL会认为您正在进行减法操作。如果你有,请用反引号包装名称。