Domanda

Spero che questo non è una questione terribilmente ottuso. Ho notato che MySQL mi permette di fare nuovamente riferimento al campo "MNTH" nel mio gruppo e l'ordine. Questo non è il caso in ogni motore di db con cui ho lavorato. Qualcuno può confim che questo è un approccio 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
È stato utile?

Soluzione

E 'OK. Da http://dev.mysql.com/doc/refman/5.0 /en/select.html :

  

Un select_expr può essere dato un alias utilizzando AS nome_alias. L'alias viene utilizzato come nome della colonna della espressione e può essere utilizzato in GROUP BY, ORDER BY o HAVING.

Non mi piace che la clausola LIKE però. Non c'è un'altra colonna è possibile verificare, invece di dover eseguire una come in una stringa?

Altri suggerimenti

Questo è accettabile in MySql:

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

  

Si noti che se si sta cercando di seguire   SQL standard, non è possibile utilizzare   espressioni in clausole GROUP BY. voi   può funzionare a questa limitazione   utilizzando un alias per l'espressione ...

... che implica che è possibile utilizzare espressioni con MySql.

Non so su eventuali interni di MySQL, ma ho usato una query simile nel nostro sistema produttivo, e fino ad oggi la query non è andato in crash ancora. Quindi questo non è un MySQL nucleo di hacker risposta, solo la mia osservazione.

Ah, dimenticavo: GARANZIA: Solo perché io dico che non vedo grattacapi, non significa che non ce ne sono; -)

IMHO, la query sembra a posto per MySQL.

standard SQL non consente riferimenti a alias di colonna in una clausola WHERE ma è possibile utilizzare l'alias in GROUP BY, ORDER, o che ha clausole di fare riferimento alla colonna.

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top