2016-06-28 24 views
6

Durante la ricerca di caratteri di sottolineatura in Postgresql, l'utilizzo letterale del carattere _ non funziona. Ad esempio, se desideri cercare tutte le tue tabelle per tutte le colonne terminate in _by, per qualcosa di simile al registro delle modifiche o alle informazioni sull'attività, ad es. updated_by, reviewed_by, ecc, la query seguente quasi funziona:Come uscire dai caratteri di sottolineatura in Postgresql

SELECT table_name, column_name FROM information_schema.columns 
WHERE column_name LIKE '%_by' 

ignora sostanzialmente la sottolineatura completamente e ritorna come se avessi cercato LIKE '%by'. Questo potrebbe non essere un problema in tutti i casi, ma ha il potenziale per essere uno. Come cercare i caratteri di sottolineatura?

+2

'%' e '_' sono i caratteri jolly per la corrispondenza' like'. '%' = zero-or-more, '_' = un singolo carattere. –

risposta

5

È necessario utilizzare una barra rovesciata per uscire dal carattere di sottolineatura. Modificare la query di esempio al seguente:

SELECT table_name, column_name FROM information_schema.columns 
WHERE column_name LIKE '%\_by' 
+4

Ho dovuto eseguire '... come E '% \\ _ by'' (utilizzando psql sulla riga di comando, PostgreSQL 8.4.20) –

+0

Come trovare in questo caso: SELECT nome_tabella, nome_colonna FROM informazioni_schema.columns WHERE nome_colonna LIKE '% name_abc' –

+1

@SameerEk 'SELECT nome_tabella, nome_colonna FROM informazioni_schema.columns WHERE nome_colonna LIKE '% nome \ _abc'' dovrebbe funzionare. –