2017-12-20 2 views
1

약 80 개의 열이있는 테이블이있는 기존 데이터베이스가 있습니다. 문제는 칼럼이 독일어로 작성 되었기 때문에 그 칼럼을 이해할 수 없다는 것입니다. 특정 열에 "NETTO"문자열이있는 모든 행의 ID를 가져와야합니다. 문제는 내가 누구의 칼럼인지 알 수 없다는 것입니다. 그래서 열이이 문자열을 포함하고 있는지 확인할 수 있는지 궁금합니다. "또는"을 사용하여 모든 열의 철자를 생각했지만 나에게 좋은 해결책은 아닙니다 (그들은 80 개가 넘습니다).적어도 하나의 열에 특정 문자열이 포함 된 모든 행을 반환하십시오.

답변

0

샘플이 항상 SeqScan 것입니다 물론

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

:

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

따라서 쿼리가 같은 것입니다 : 당신이 행에 대한 텍스트 표현에서 확인할 수 있습니다

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 

따라서 최적 이하이다.

관련 문제