MySQL 5.7 中的不同函数损坏
Distinct function broken in MySQL 5.7
我有以下代码自 MySQL 5.7 升级后停止工作:
$myDB->contentArray = $myDB->executeAssoc("
SELECT DISTINCT(YEAR(displayDate)) as year FROM
`inlineItemData_standardList`
WHERE `inlineItemGroupID` = $inlineItemGroupID
ORDER BY `displayDate` desc");
谁能告诉我如何替换其中的 DISTINCT 部分?我四处搜索,可以找到其他人遇到同样的问题,但没有很多 PHP 知识,我似乎无法实施正确的事情。我尝试使用 GROUP BY 'YEAR(displayDate)) as year' 但似乎无法正常工作。提前致谢。
SELECT DISTINCT
查询的 ORDER BY
子句必须与 SELECT
子句一致。
所以:
SELECT DISTINCT YEAR(displayDate) as year
FROM inlineItemData_standardList
WHERE inlineItemGroupID = ?
ORDER BY YEAR(displayDate) DESC
-- Or: ORDER BY `year` DESC
旁注:使用准备好的语句!不要在查询字符串中连接变量:这既低效又不安全。推荐阅读:How can I prevent SQL injection in PHP?
我有以下代码自 MySQL 5.7 升级后停止工作:
$myDB->contentArray = $myDB->executeAssoc("
SELECT DISTINCT(YEAR(displayDate)) as year FROM
`inlineItemData_standardList`
WHERE `inlineItemGroupID` = $inlineItemGroupID
ORDER BY `displayDate` desc");
谁能告诉我如何替换其中的 DISTINCT 部分?我四处搜索,可以找到其他人遇到同样的问题,但没有很多 PHP 知识,我似乎无法实施正确的事情。我尝试使用 GROUP BY 'YEAR(displayDate)) as year' 但似乎无法正常工作。提前致谢。
SELECT DISTINCT
查询的 ORDER BY
子句必须与 SELECT
子句一致。
所以:
SELECT DISTINCT YEAR(displayDate) as year
FROM inlineItemData_standardList
WHERE inlineItemGroupID = ?
ORDER BY YEAR(displayDate) DESC
-- Or: ORDER BY `year` DESC
旁注:使用准备好的语句!不要在查询字符串中连接变量:这既低效又不安全。推荐阅读:How can I prevent SQL injection in PHP?