我只想获取在一列中有一些单词的记录,我尝试过使用WHERE ... IN (...)
,但 Postgres 在这个 where 子句中区分大小写。这就是我尝试正则表达式和~*
运算符的原因。
以下是从数据库返回所有列和表的 SQL 片段,我想限制行以仅带正则表达式中的表。
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
此正则表达式将带入 BALANCES 的所有列以及包含“BALANCES”关键字的表的列。
我想将结果限制为仅完整的名称。