więc mam w moim PostgreSQL:Postgresql SELECT jeśli ciąg zawiera
TAG_TABLE
==========================
id tag_name
--------------------------
1 aaa
2 bbb
3 ccc
Aby uprościć mój problem, Co chcę zrobić, to wybrać 'id' z TAG_TABLE gdy ciąg "aaaaaaaa" zawiera " Nazwa znacznika'. Tak idealnie, że tylko powinny powrócić „1”, który jest identyfikatorem dla nazwy znacznika „aaa”
To, co robię do tej pory:
SELECT id FROM TAG_TABLE WHERE 'aaaaaaaaaaa' LIKE '%tag_name%'
Ale oczywiście to nie działa, ponieważ postgres uważa, że "% tag_name%" oznacza wzorzec zawierający podciąg "tag_name" zamiast faktycznej wartości danych w tej kolumnie.
Jak przekazać nazwę zmiennej do wzorca ??
co dzieje się, gdy nazwa_znacznika to' "; drop tabela TAG_TABLE; -" '? –
@Denis: Nic się nie dzieje. Nie otrzymujesz wiersza, ponieważ klauzula "WHERE" ma wartość "FALSE". Instrukcja nie jest dynamiczna, tylko wartości są konkatenowane, bez szans na iniekcję SQL. –
nie powinien być uporządkowany w kolejności od aaaa i tag_name? mam na myśli, że powinieneś umieścić nazwę kolumny po numerze – user151496