Sadece bir sütunda bazı kelimeler içeren kayıtları almak istiyorum, WHERE ... IN (...)
'u kullanmayı denedim, ancak Postgres bu yerde cümleye duyarlı. Bu yüzden regex ve ~*
operatörünü denedim.Regex'te tam kelimeleri bulmak için Postgresql
Aşağıda, DB'deki tüm sütunları ve tabloları döndüren bir SQL snippet'i var, yalnızca satırları regex açıklamasındaki tabloları getirmek için kısıtlamak istiyorum.
SELECT ordinal_position as COLUMN_ID, TABLE_NAME, COLUMN_NAME
FROM information_schema.columns
WHERE table_schema = 'public' and table_name ~* 'PRODUCTS|BALANCES|BALANCESBARCODEFORMATS|BALANCESEXPORTCATEGORIES|BALANCESEXPORTCATEGORIESSUB'
order by TABLE_NAME, COLUMN_ID
Bu regex tüm Dengeleri sütunlar ve 'dengeleri' anahtar kelime içeren tablo sütunları getirecektir.
Sonucu yalnızca isimleri tamamlamak için kısıtlamak istiyorum.
Postgres'de '\ b', as'de olduğu gibi back backspace anlamına gelir. '' Y'' için '' kelimelerini yalnızca bir kelimenin başlangıcında ya da sonunda '' kullanabilirsiniz. Ayrıntılar ['' '' '[http://www.postgresql.org/docs/current/static/functions-matching.html) –
@IgorRomanchenko Evet, işaret ettiğin için teşekkürler! – acdcjunior
Pedantic, ama "normal regexler" yerine "diğer regex motorları" diyorum - regexler gerçekten standardize edilmez, bu nedenle herhangi bir varsayım yapmaktan ziyade belirli bir araç çalıştırılan her hangi "lezzet" için kılavuzu bulmak genellikle en iyisidir. – IMSoP