是否可以在单个查询中匹配日期时间格式的年数组,例如2017-12-12 00:00:00我这样试过,但不管用。
$years=implode(",",$year); SELECT * FROM mytable WHERE YEAR(reg-date) = '$years';
它只会在数组的第一年返回。如何查询表以返回数组中的所有年份?
7dl7o3gd1#
你应该使用mysql函数 IN() . 为了匹配您的值所在的年份,您应该使用 YEAR() 而且不仅仅是列名。
IN()
YEAR()
$years = implode("'), YEAR('",$year);
然后查询将作为
SELECT * FROM mytable WHERE YEAR(`reg-date`) IN (YEAR('$years'));
请注意,这不是一种理想的方法。您应该使用一个带有占位符的准备好的语句—但是如果不知道您使用的是哪种api,就很难确切地说明您将如何执行该操作。您还应该避免在列名中使用连字符,因为mysql会认为您在进行减法运算。如果你真的有,把名字用记号圈起来。
1条答案
按热度按时间7dl7o3gd1#
你应该使用mysql函数
IN()
. 为了匹配您的值所在的年份,您应该使用YEAR()
而且不仅仅是列名。然后查询将作为
请注意,这不是一种理想的方法。您应该使用一个带有占位符的准备好的语句—但是如果不知道您使用的是哪种api,就很难确切地说明您将如何执行该操作。
您还应该避免在列名中使用连字符,因为mysql会认为您在进行减法运算。如果你真的有,把名字用记号圈起来。