2010-03-16 5 views

risposta

7

Non sono sicuro che funzioni, ma vale la pena provare.

È sufficiente aggiungere "/* some comment or tag */ " prima che la query SQL venga inviata normalmente.

È possibile che il server MySQL rimuova questo commento come parte della sua analisi/preparazione delle query, ma può anche lasciarlo, quindi viene mostrato come tale nei log e in altri strumenti di monitoraggio.

Nel caso in cui i commenti che ottenere strappato via, e assumendo query SELECT, una leggera variazione di quanto sopra sarebbe quella di aggiungere una colonna calcolata come prima cosa dopo SELECT, qualcosa come

SELECT IF('some comment/tag' = '', 1, 0) AS BogusMarker, here-start-the-original-select-list 
-- or 
SELECT 'some [short] comment/tag' AS QueryID, here-start-the-original-select-list 

Questo approccio ha il svantaggio di introdurre un valore di colonna in più, con ciascuna riga dei risultati. Quest'ultima forma utilizza effettivamente il valore "comment/tag" come questo valore, che può essere utile per scopi di debug.

+0

Si potrebbe fare qualcosa come "SELECT IF ('owner' = 'joe ',' commento aggiuntivo ', original_first_column) 'per evitare la colonna in più – Tgr

+1

FWIW Il server MySQL non elimina i commenti, ma il client della riga di comando' mysql' . –

0

scoperto questo oggi:

MySQL supporta la strana sintassi:

/*!<min-version> code here */

di incorporare codice che verrà interpretato solo da MySQL, e solo mysql di una versione minima specificata.
questo è documentato qui: http://dev.mysql.com/doc/refman/5.0/en/comments.html
(. Usata da mysqldump per esempio)

tali osservazioni non saranno analizzati, e compresi nel processlist, a differenza di quelle normali, e che, anche se il codice non è in realtà eseguita .

in modo da poter fare qualcosa di simile

/*!999999 comment goes here */ select foo from bla;

per avere un commento che verrà visualizzato nel processlist, ma non modificare il codice. (fino a quando gli sviluppatori di mysql decidono di aumentare la numerazione delle versioni e rilasciare una versione numerata oltre 99.99.99, nel qual caso sarà sufficiente aggiungere un'altra cifra

+0

è stato pubblicato quattro anni fa: http: // stackoverflow. com/a/4100729/4271231 – r00t

Problemi correlati