2017-12-20 13 views
1

私は、80個程度の列を持つテーブルを持つ従来のデータベースを持っています。問題は、列がドイツ語で書かれているため、私はそれらを理解できないということです。 特定の列に「NETTO」という文字列があるすべての行のIDを取得する必要があります。問題は、どれがすべての列であるのかわからないことです。 これで、この列が列に含まれているかどうかを確認できますか? "or"とすべての列のスペルを考えましたが、私にとっては良い解決策ではありません(80以上です)。少なくとも1つの列に特定の文字列が含まれているすべての行を返します

答えて

0

サンプル:

t=# create table n(a text, i int, b text); 
CREATE TABLE 
t=# insert into n values ('abc def',1,'here NETTO exists'), ('abc',2,'brutto'); 
INSERT 0 2 

あなたは、行のテキスト表現でチェックすることができます。もちろん

t=# select * from n where n::text like '%NETTO%'; 
    a | i |   b 
---------+---+------------------- 
abc def | 1 | here NETTO exists 
(1 row) 

このは常にSeqScan:

t=# select n from n; 
       n 
----------------------------------- 
("abc def",1,"here NETTO exists") 
(abc,2,brutto) 
(2 rows) 

ので、クエリは次のようになりますしたがって最適以下になる

関連する問題