quindi ho un mio PostgreSQL:PostgreSQL SELEZIONA se stringa contiene
TAG_TABLE
==========================
id tag_name
--------------------------
1 aaa
2 bbb
3 ccc
Per semplificare il mio problema, Quello che voglio fare è selezionare 'id' dal TAG_TABLE quando una stringa "aaaaaaaa" contiene il ' tag_name'. Così Idealmente, dovrebbe soltanto il ritorno "1", che è l'ID per il nome tag 'aaa'
Questo è quello che sto facendo finora:
SELECT id FROM TAG_TABLE WHERE 'aaaaaaaaaaa' LIKE '%tag_name%'
Ma, ovviamente, questo non funziona, dal momento che postgres pensa che '% tag_name%' significhi un pattern contenente la sottostringa 'tag_name' invece del valore di dati effettivo sotto quella colonna.
Come si passa il tag_name allo schema ??
quali feci quando tag_name è' "; drop table TAG_TABLE; -" '? –
@Denis: non succede nulla. Non ottieni nessuna riga, perché la clausola 'WHERE' restituisce' FALSE'. L'istruzione non è dinamica, solo i valori sono concatenati, nessuna possibilità per l'iniezione SQL. –
non dovrebbe essere l'ordine di aaaa e tag_name invertiti? Voglio dire che dovresti mettere un nome di colonna dopo dove – user151496