mysql-为datetime字段匹配一个年数组

yjghlzjz  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(264)

是否可以在单个查询中匹配日期时间格式的年数组,例如2017-12-12 00:00:00
我这样试过,但不管用。

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

它只会在数组的第一年返回。
如何查询表以返回数组中的所有年份?

7dl7o3gd

7dl7o3gd1#

你应该使用mysql函数 IN() . 为了匹配您的值所在的年份,您应该使用 YEAR() 而且不仅仅是列名。

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

然后查询将作为

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

请注意,这不是一种理想的方法。您应该使用一个带有占位符的准备好的语句—但是如果不知道您使用的是哪种api,就很难确切地说明您将如何执行该操作。
您还应该避免在列名中使用连字符,因为mysql会认为您在进行减法运算。如果你真的有,把名字用记号圈起来。

相关问题