2012-02-24 14 views
5

C'è un modo per disabilitare i caratteri di escape in una query MySQL? Ad esempio, per la seguente tabella:Disabilitare i caratteri di escape in una query MySQL

mysql> select * from test1; 
+------------------------+-------+ 
| name     | value | 
+------------------------+-------+ 
| C:\\media\data\temp\ |  1 | 
| C:\\media\data\temp |  2 | 
| /unix/media/data/temp |  3 | 
| /unix/media/data/temp/ |  4 | 
+------------------------+-------+ 

Voglio che il seguente per essere una query valida:

mysql> select * from test1 where name='C:\\media\data\temp\'; 

So che posso utilizzare invece

mysql> select * from test1 where name='C:\\\\media\\data\\temp\\'; 

Ma io sto costruendo questa query utilizzando my_snprintf(), quindi invece devo usare

C:\\\\\\\\media\\\\data\\\\temp\\\\ 

... e così via! C'è un modo per disabilitare i caratteri di escape per una singola query MySQL?

+0

Che lingua stai facendo questo in? Non ho trovato nessuna informazione per my_snprintf su internet. Non c'è modo di creare una funzione che ti sfugge? –

+0

Sto usando C. my_snprintf() - http://dev.mysql.com/doc/refman/5.5/en/plugin-services.html. Fa principalmente ciò che fa lo sprint. –

risposta

8

È possibile disattivare backslash impostando NO_BACKSLASH_ESCAPES nella modalità SQL:

-- save mode & disable backslashes 
SET @[email protected]@sql_mode; 
SET @@sql_mode=CONCAT_WS(',', @@sql_mode, 'NO_BACKSLASH_ESCAPES'); 

-- run the query 
SELECT 'C:\\media\data\temp\'; 

-- enable backslashes 
SET @@[email protected]_sql_mode; 
1

Per output tabulare in riga di comando MySQL, il "boxing" attorno alle colonne consente di distinguere un valore di colonna da un altro. Per l'output non tabellare (come viene prodotto in modalità batch o quando viene fornita l'opzione --batch o --silent), i caratteri speciali vengono sfuggiti nell'output in modo che possano essere facilmente identificati. Newline, tab, NUL e backslash sono scritti come \ n, \ t, \ 0 e \. L'opzione --raw disabilita l'escape di questo carattere.

+0

'--raw' ha funzionato! Grazie! –

Problemi correlati