Question

J'espère que ce n'est pas une question terriblement obtus. Je remarque que MySQL me permettra de renvoyer au champ « MNTH » dans mon groupe et l'ordre. Ce n'est pas le cas dans tous les moteurs db j'ai travaillé. Quelqu'un peut-il que ce confim est une approche OK?

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
Était-ce utile?

La solution

Il est OK. De http://dev.mysql.com/doc/refman/5.0 /en/select.html :

  

peut être donné expression SELECT un alias en utilisant AS. L'alias est utilisé comme nom de colonne d'expression et peut être utilisé dans GROUP BY, ORDER BY ou HAVING.

Je ne veux pas que clause LIKE bien. N'y at-il une autre colonne, vous pouvez tester au lieu d'avoir à effectuer une comme sur une chaîne?

Autres conseils

C'est acceptable dans MySql:

voir ici: http: // dev.mysql.com/doc/refman/5.1/en/group-by-hidden-columns.html

  

Notez que si vous essayez de suivre   SQL standard, vous ne pouvez pas utiliser   expressions dans des clauses GROUP BY. Toi   peut contourner cette limitation par   en utilisant un alias pour l'expression ...

... ce qui implique que vous pouvez utiliser des expressions avec MySql.

Je ne sais pas tout MySQL internals, mais j'utilisé une requête similaire dans notre système de production et jusqu'à aujourd'hui la requête n'a pas encore écrasé. Donc, ce ne répond pas hacker de base MySQL, juste mon observation.

Oh, j'ai oublié: EXCLUSION DE GARANTIE: Juste parce que je dis que je ne vois pas gotchas, ne veut pas dire qu'il n'y en a pas; -)

à mon humble avis, la requête semble correct pour MySQL.

Standard SQL références à des alias autorise pas de colonne dans une clause WHERE mais vous pouvez utiliser l'alias dans GROUP BY, ORDER BY, ou HAVING de se référer à la colonne.

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top