我希望这不是一个非常迟钝的问题。我注意到,MySQL将让我参考回到“Mnth”字段在我的团队和秩序。这不是在每个数据库引擎我使用过的情况。任何人都可以confim,这是一个好办法?

SELECT DATE_FORMAT(FROM_UNIXTIME(`swauditlogs`.`dateline`),'%Y-%m') AS Mnth, Count(`swauditlogs`.`ticketid`) AS Count
FROM swauditlogs LEFT JOIN swtickets ON swauditlogs.ticketid = swtickets.ticketid
WHERE swauditlogs.actionmsg Like 'Ticket status changed from:%to: Closed'
GROUP BY Mnth
ORDER BY Mnth DESC
有帮助吗?

解决方案

这是确定的。从 http://dev.mysql.com/doc/refman/5.0 /en/select.html

  

一个select_expr可以给出使用AS ALIAS_NAME的别名。别名用作表达式的列名,并且可以在GROUP BY,ORDER BY,或HAVING子句中使用。

我不喜欢LIKE子句虽然。是不是有可以测试,而不必对字符串进行LIKE另一列?

其他提示

这是可接受的,MySQL的:

在这里看到: HTTP:// dev.mysql.com/doc/refman/5.1/en/group-by-hidden-columns.html

  

请注意,如果你正在试图跟随   标准的SQL,你不能使用   表现在GROUP BY子句。您   可以解决此限制由   使用别名的表达...

...这意味着你可以使用表达式与MySQL。

我不知道任何MySQL的内部,但我在我们的生产系统中使用类似的查询,并且直到今天查询没有崩溃呢。因此,这是没有MySQL的核心黑客的答案,只是我的观察。

哦,我忘了:免责声明:的只是因为我说,我看不出有什么陷阱,并不意味着有没有; - )

IMHO,查询没问题的MySQL。

标准SQL不允许到列的别名的引用WHERE子句中但可以使用在GROUP BY,ORDER BY别名,或HAVING子句来引用列。

http://dev.mysql.com /doc/refman/5.0/en/problems-with-alias.html

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top